Proxmox VE 9.2 – sporadic iSCSI NOP timeouts / DID_TRANSPORT_DISRUPTED with Dell PowerVault ME5 and Intel E810

I see that the target stops answering for like 12 seconds in that trace, did you reach out to Dell?

They usually have awesome support.

If you could reproduce it easily with another Version, I wouldn't rule out the iSCSI target not playing nice
 
Hi @huganega,

Thanks for the extra tracing. Some of it is useful, but I think the text you've put together is pointing you the wrong way.

The solid parts:

- The same stall shows up in two independent places: your I/O completions freeze for 12.2s, and the network gap from the target's keepalive to your FIN is 12.199s. This is really a single event.
- The pause-frame counters stay flat the whole time. No flow control on the NIC or the link, so it isn't that (as expected).
- ioerr jumping from 1 to 129 is just the 128 in-flight commands failing when the connection dropped. Also expected.

Here's the key point: the window that closed is the host's receive window. The host closed it, by not reading from the socket, so the array had no choice but to stop. It dropped to a few KB, and the ME5 correctly stopped sending and waited. The array was already throttled by the host before it could have done anything wrong, which puts the start of the stall on the host's receive side and clears the ME5. An actual iSCSI initiator/target hang looks different.

Where I'd be careful with your interpretation:

The D-state stacks show the block layer is stuck, but not why. Everything in them follows from commands not completing. Once the connection stops draining, the command queue fills, new I/O can't get a slot (your KVM threads), and flushes can't finish (the fsync workers). Those are what a stall causes, not what causes the stall. So "the block layer is stuck before the NOP timeout" is true, but it's the same stall.

The one thing we still don't have is what the real iscsi_q worker was doing. Your sample caught only the rescuer thread, and a rescuer sits idle in rescuer_thread() until it's needed, so it tells us nothing about the busy worker. However that happened, the fix is the same: don't sample for it. Have the kernel dump every blocked task at once.

To recap: the NOP timeout is a symptom, not the cause. The stall is on the host's receive side, not the ME5 or the link. What's left to figure out is which host layer stalls first: the block layer or the iSCSI/TCP path.

Add these to your trigger script so they fire when the queue hits the threshold:

Code:
echo w > /proc/sysrq-trigger   # every task stuck waiting, dumped in one shot
echo l > /proc/sysrq-trigger   # what each CPU is doing right now

The first one is the most important one. It shows whether the thread servicing the socket is in the blocked list and what it's waiting on, which tells us whether the iSCSI path is stuck alongside the flush workers or is the thing they're all stuck behind. That's the question we need answered.

Please post the raw dumps, not a writeup... The polished summaries are harder to reason from, and twice now they've pointed at a cause the traces don't support. Raw output is what we need.

Let us know how the next one looks.


Blockbridge : Ultra low latency all-NVME shared storage for Proxmox - https://www.blockbridge.com/proxmox
 
Another stall occurred on Sep 11 at 03:03:03.

As requested, I am attaching the raw data from the event without further filtering or interpretation.

Archive:
iscsi-forum-raw-2026-09-11_03-03-03.tar.gz

SHA256:
2b64f8cf9a9d944bceb7e02a350061616a867b18d032187cfc255ab5ea197993

Download:
https://1drv.ms/u/c/a605a90763ea0fad/IQBBmuNYdnDWQIdvemhuT_aZAWGpdJdFKf0nuKuZKYZ954w?e=8jR7l6

It contains the complete causal trace including SysRq-w/SysRq-l output and the full rolling packet capture set for the event.
 
Intriguing. Nothing in your data points to a root cause, and it doesn't look like the Dell. Our best guess is a Linux issue.

That said, we run a lot of iSCSI with PVE in the field and haven't seen any issues at customer sites. This suggests our integration may be avoiding it, which might offer a clue.

Can you enable this on your PVE node?
sysctl -w net.ipv4.tcp_shrink_window=1

You can revert it with:
sysctl -w net.ipv4.tcp_shrink_window=0



Blockbridge : Ultra low latency all-NVME shared storage for Proxmox - https://www.blockbridge.com/proxmox
 
Do you have test lab where the same issue observed? I wanted to suggest to even try with Kernel 6.x, it's seems something specific with your hardware.
 
Intriguing. Nothing in your data points to a root cause, and it doesn't look like the Dell. Our best guess is a Linux issue.

That said, we run a lot of iSCSI with PVE in the field and haven't seen any issues at customer sites. This suggests our integration may be avoiding it, which might offer a clue.

Can you enable this on your PVE node?
sysctl -w net.ipv4.tcp_shrink_window=1

You can revert it with:
sysctl -w net.ipv4.tcp_shrink_window=0



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

Enabled now:
net.ipv4.tcp_shrink_window = 1
I will leave the existing tracing and packet capture running unchanged and monitor for another occurrence.
 
Do you have test lab where the same issue observed? I wanted to suggest to even try with Kernel 6.x, it's seems something specific with your hardware.
Unfortunately, we do not have a separate test lab where the issue can be reproduced.


The problem is sporadic and only occurs on the production PVE host. We have not found a workload or test that can reliably trigger it, which makes controlled A/B testing difficult.


We have already seen the same issue with multiple PVE kernels on this host, so it does not appear to be limited to one specific current kernel build.


Testing an older 6.x kernel could still be useful as an additional comparison, but because the issue cannot be triggered on demand and the host is in production, we would have to run that kernel for some time to get a meaningful result.


At the moment we are also testing net.ipv4.tcp_shrink_window=1 as suggested in this thread, while leaving the existing tracing and packet capture unchanged.


If the issue still reproduces with that setting, trying a 6.x kernel would be one of the next useful comparisons.