PSA: NVMe-TCP with Native NVMe Multipathing - Potential Data Corruption

bbgeek17

Distinguished Member
Nov 20, 2020
5,780
2,008
228
Blockbridge
www.blockbridge.com
Advisory: NVMe-TCP with Native NVMe Multipathing - Potential Data Corruption

Hey everyone, this is a small public service announcement from our storage folks.

Description:
A bug affecting Linux initiators using NVMe over TCP with native NVMe multipathing has been identified and resolved in Linux kernel 6.15. This issue may lead to data corruption in specific scenarios.

Reference: https://lists.infradead.org/pipermail/linux-nvme/2025-April/055886.html

Recommended Action:

Users running NVMe-TCP with native multipathing are advised to temporarily migrate to dm-multipath until the fix is included in the PVE kernel.
Although no instances of this issue have been reported in production, precautionary measures may be warranted due to the risk of data integrity issues in specific path failure scenarios.

Respectfully,
bbgeek17


Blockbridge : Ultra low latency all-NVME shared storage for Proxmox - https://www.blockbridge.com/proxmox
 
Hello Everyone,

Here is a brief update from our team regarding this advisory. The recently reported issues with NVMe/TCP native multipathing have now been addressed. The relevant fixes are included upstream and are part of the Ubuntu kernel v6.14.8, which is the kernel version that ships with Proxmox VE 9.

If you're running PVE 9 with the latest kernel updates, you should already have the fixes. This means NVMe/TCP multipathing will now work as expected out of the box, without requiring additional patches or workarounds.

For those still on earlier kernel versions, I'd recommend validating that your kernel has the fixes in place if you rely on NVMe/TCP in production environments. You can do this by ensuring that the function "nvme_tcp_wait_queue" is defined in /drivers/nvme/host/tcp.c

Respectfully,
bbgeek17


Blockbridge : Ultra low latency all-NVME shared storage for Proxmox - https://www.blockbridge.com/proxmox
 
Last edited: