NVIDIA Accelerated IO (XLIO) Documentation

Bug Fixes History

The following table describes the issues that have been resolved in previous releases of XLIO.

Internal Ref. Number

Details

4745056

Description: Fixed an issue where XLIO was incompatible with Redis clusters using replicas (--cluster-replicas). This configuration could have led to packet corruption or data loss during Redis fork() operations.

Keywords: Redis; Cluster

Discovered in Version: 3.61

Fixed in Version: 3.61

4720794 

Description: Fixed an issue where in configurations with XLIO_WORKER_THREADS (performance.threading.worker_threads) enabled, closing a TCP socket without an entity context (such as a listen socket immediately after bind, or a socket not yet bound/connected) could result in a memory leak. This occurred because the socket object was not properly freed.

Keywords: XLIO_WORKER_THREADS; Memory Leak; TCP Socket; Entity Context

Discovered in Version: 3.61

Fixed in Version: 3.61

4693625

Description: Fixed an issue where XLIO printed an error message displaying a corrupted m_rx_ready_byte_count counter upon socket termination. This was a reporting issue only - Socket termination and traffic processing functionality were not affected.

Keywords: m_rx_ready_byte_count; Socket Termination; Error Message

Discovered in Version: 3.60

Fixed in Version: 3.61

4669942 

Description: Fixed an issue where the socket error counter was incorrectly incremented when a TCP socket read call returned 0 (EOF). Although EOF is not an error, this behavior resulted in misleading error statistics.

Keywords: TCP Read; EOF; Error Counter 

Discovered in Version: 3.60

Fixed in Version: 3.61

4582018

Description: Fixed an issue where verbose log messages were incorrectly printed at the 'info' level, regardless of the configured verbosity setting.

Keywords: Log Messages; Verbosity 

Discovered in Version: 3.60

Fixed in Version: 3.61

4556521 

Description: Fixed an issue where, when setting core.daemon.enable, the value was not displayed in the XLIO header.

Keywords: XLIO Header; core.daemon.enable

Discovered in Version: 3.60

Fixed in Version: 3.61

4567877

Description: Fixed incorrect configuration path reference - performance.steering_rules.only_mc_l2_rules is now correctly set to performance.steering_rules.udp.only_mc_l2_rules to align with the expected schema structure. Also updated the output to print true/false instead of Enabled/Disabled.

Keywords: Configuration path

Discovered in Version: 3.50

Fixed in Version: 3.60

4550864

Description: Added "minimum": 0 constraint to the byte_threshold field in the TCP nodelay configuration schema to prevent negative values. This ensures the threshold is always a valid non-negative byte count.

Keywords: TCP nodelay

Discovered in Version: 3.50

Fixed in Version: 3.60

4415379

Description: Fixed TLS RX offload connection failures that could occur when hardware was out of sync and encryption was required.

Keywords: TLS; RX; offload; connection failure

Discovered in Version: 3.50

Fixed in Version: 3.60


Discovered in Version: 3.50


Fixed in Version: 3.60

4039462

Description: Fixed an issue where XLIO could crash if statistics collection was disabled, leading to the closure of the associated thread.

Keywords: stats; crash

Discovered in Version: 3.31.2

Fixed in Version: 3.40

3875087

Description: Fixed the issue where, after a partial ACK of a retransmitted TCP TSO segment, the TCP connection could halt if the unacknowledged part was lost and no other inflight TCP segments existed, with the acknowledged part exceeding the TCP window.

Keywords: TCP; TSO

Discovered in Version: 3.31.2

Fixed in Version: 3.40

3858121

Description: Fixed a race condition that occurred when XLIO was unloaded, which could lead to data corruption in STAT_FILE due to concurrent calls to the stats destructors. Note: Live stats were not affected by this issue.

Keywords: Data corruption; STAT_FILE; destructor

Discovered in Version: 3.30.5

Fixed in Version: 3.31.2

3854806

Description: Fixed the issue where XLIO Ring might not have returned buffers to the global pool, which could lead to higher TX buffer consumption.

Keywords: Tx buffers global pool

Discovered in Version: 3.30.5

Fixed in Version: 3.31.2

3784248

Description: Fixed the issue where using the same port number for both IPV4 and IPV6 on an Nginx UDP listen socket with the "reuseport" directive did not work.

Keywords: reuseport; Nginx; UDP; IPv6

Discovered in Version: 3.30.5

Fixed in Version: 3.31.2

3598943

Description: Fixed the issue where using CQ adaptive moderation could have led to a very high interrupt rate.

Keywords: CQ adaptive moderation; high interrupt rate

Discovered in Version: 3.30.5

Fixed in Version: 3.31.2

3818038

Description: Possible data corruption in small packets when using more then 16 QPs/SQs, in multithreaded environment.

Keywords: multithreded, blue flame, data corrution

Discovered in Version: 3.21.2

Fixed in Version: 3.30.5

3704820

Description: Create resources for UDP listen socket of HTTP / HTTPS servers in the NGINX configuration file, with the printed error "Failed to create dpcp rq". It should not harm server's ability to handle UDP traffic.

Keywords: Nginx, UDP, QUIC, listen socket, dpcp rq

Discovered in Version: 3.21.2

Fixed in Version: 3.30.5

3574064

Description: When transferring large data initially with limited send space, XLIO waits for ACKs to enlarge the Tx window. However, if the queued data does not fit the expanded TCP window, XLIO may not send it. This problem remains until a new send call is made.

Keywords: TCP window, Stuck connection

Discovered in Version: 3.20.1-1

Fixed in Version: 3.21.2

3684889

Description: Calling poll() with events=0 on an offloaded TCP socket can return POLLHUP immediately

Keywords: poll, POLLHUP

Discovered in Version: 3.10.5

Fixed in Version: 3.21.2

3612954

Description: An extra retransmission or TCP payload corruption can occur in rare cases after a TCP fast retransmission takes place.

Keywords: Fast retransmit

Discovered in Version: 3.10

Fixed in Version: 3.20.7

3604029


Description: Library reports error message in multithreaded application using XLIO_RING_MIGRATION_RATIO_RX=-1 XLIO_RING_ALLOCATION_LOGIC_RX=20. 

Keywords: error, allocation, logic, migration, thread

Discovered in Version: 3.10

Fixed in Version: 3.20.7

3602243


Description:  XLIO does not operate properly when connect is initialized during link down.

Keywords: connect, link, down

Discovered in Version: BlueField_OS_4.2.1_OL_8-2.230906.inbox.dev

Fixed in Version: 3.20.7

3592264


Description:  Fixed XLIO compilation with clang-16 compiler

Keywords: clang

Discovered in Version: 3.10

Fixed in Version: 3.20.7

3591210


Description: Fixed TCP stream corruption in case of out of order packets. 

Keywords: TCP, corruption, out of order

Discovered in Version: 3.10

Fixed in Version: 3.20.7

3575217

Description:  instead of taking the first IP of the outgoing interface as the source IP of the packet, we go over all the IPs that are set for the outgoing interface and choose the most suitable IP in terms of IP + subnet combination.

Keywords: IP, source, packet, subnet

Discovered in Version: 3.10

Fixed in Version: 3.20.7

3574901


Description:  Closing an outgoing TCP socket might cause a segmentation fault.

Keywords:  TCP, socket, segmentation, fault

Discovered in Version: 3.10

Fixed in Version: 3.20.7

3563140


Description:  SocketXtream does not currently support Generic Receive Offload (GRO).

Keywords: SocketXtraem,GRO, generic receive offload

Discovered in Version: 3.10

Fixed in Version: 3.20.7

3531871


Description:  Fix incorrect socketxtreme completion filling.

Keywords:  socketxtreme 

Discovered in Version: 3.10.3

Fixed in Version: 3.20.7

3433495


Description:  Fixed segfault caused by thread race during RX ring migration

Keywords: Rx, ring, migration

Discovered in Version: 3.0.1

Fixed in Version: 3.20.7

3286324


Description:  Fixed RX ring cleanup infinite loop in case of empty RQ.

Keywords: Rx, ring, cleanup, termination, stuck, hang up

Discovered in Version: 2.0.7

Fixed in Version: 3.20.7


Internal Reference Number 

Details 

3455917


Description: Fixed the issue where a crash took place if an IPv6 multicast group was not previously configured as part of the routing table. 

Keywords: Multicast; MC; IPv6; routing table

Discovered in Version: 3.0.2

Fixed in Version: 3.10.5

3447653


Description: Fixed incorrect pbuf chain split in tcp stack in case of re-transmission.

Keywords: tcp stack; split

Discovered in Version: 2.1.4

Fixed in Version: 3.0.2

3226553


Description: Fixed the issue where SO_BINDTODEVICE failed on a connected TCP socket when the interface was the same as the outgoing one.

Keywords: SO_BINDTODEVICE; TCP; interface

Discovered in Version: 1.3.5

Fixed in Version: 2.1.4

3263352


Description: Fixed TCP MSS calculation from SYN packet.

Keywords: mss; syn

Discovered in Version: 1.3.5

Fixed in Version: 2.1.4

3068125




Description: Added support for Multipath routing.

Keywords: ECMP; multipath routing

Discovered in Version: 1.3.5

Fixed in Version: 2.1.4

3213178





Description: Added support for IPv4/IPv6 local routing tables.

Keywords: Local routing; IPv4; IPv6

Discovered in Version: 2.0.6

Fixed in Version: 2.1.4

3100979


Description: 

When VMA_HANDLE_SIGINTR=0, the following issues are no longer encountered:
1. When SIGNIT is caught by VMA, subsequent calls to socket API return EINTR error code immediately.
2. VMA_HANDLE_SIGINTR parameter is ignored by signal() API.

However, when  VMA_HANDLE_SIGINTR=1,  only the first issue persists.

Keywords: VMA_HANDLE_SIGINTR; SIGINT; EINTR; signal

Discovered in Version: 1.2.9

Fixed in Version: 2.0.6

3202977





Description: Fixed the issue of when a segmentation fault took place in RX zero copy API due to buffer trimming int16 overflow.

Keywords: Segmentation fault; RX zero copy; buffer

Discovered in Version: 1.3.5

Fixed in Version: 2.0.6

3132299






Description: Fixed the issue of a buffer leak in RX zero copy due to incorrect buffer chain break.

Keywords: Buffer leak; RX zero copy

Discovered in Version: 1.3.5

Fixed in Version: 2.0.6

3183546


Description: Fixed the issue where using send* functions with null elements in iov Tx vector caused an API error.

Keywords: iov Tx vector

Discovered in Version: 1.3.5

Fixed in Version: 2.0.6

2678856





Description: Fixed the issue of when attempting to reuse a TCP or UDP port immediately after connection is closed, the application failed with the error “Address already in use”.

Keywords: Close; bind; EADDRINUSE

Discovered in Version: 1.2.9

Fixed in Version: 1.3.5

3113441


Description: Fixed the issue where resource leakage took place after intensive disconnect/connect attempts.

Keywords: Resources leakage

Discovered in Version: 1.2.9

Fixed in Version: 1.3.5

3113450


Description: Fixed the issue where a crash took place after intensive TCP disconnect/connect attempts.

Keywords: Crash; tcp

Discovered in Version: 1.2.9

Fixed in Version: 1.3.5

3100949





Description: Fixed the issue of when attempting to perform a second connect() after the first connect() has failed, a segmentation fault took place. Now, an expected error is received upon second attempt instead.

Keywords: connect(); blocking socket; segmentation fault

Discovered in Version: 1.2.9

Fixed in Version: 1.3.5

2903631




Description: Fixed a synchronization issue that took place during new TCP socket creation.  

Keywords: TLS 

Discovered in Version: 1.1.8

Fixed in Version: 1.2.9

2690914

Description: Data corruption during https session. 

Keywords: TLS 

Discovered in Version: N/A

Fixed in Version: 1.0.6


Last updated: