NBD client relies on lazy reconnection on error. There is a case where nbd_co_establish_connection() will hand back a channel disconnected by its peer. This leads to the request running on the dead channel. When reconnect-delay is set to 0 (the default), this bug prevents the nbd-connect thread from running on the first operation. This patch set addresses this specific case.
Found while searching for a way to force client reconnection to simplify the resize of idle nodes which will be the subject of another patch set. Guillaume Vincke (2): nbd/client-connection: Fix client returning a closed channel iotests: Add coverage for NBD connect thread start delay nbd/client-connection.c | 35 +++++++++++ tests/qemu-iotests/tests/nbd-stale-connection | 62 +++++++++++++++++++ .../tests/nbd-stale-connection.out | 17 +++++ 3 files changed, 114 insertions(+) create mode 100755 tests/qemu-iotests/tests/nbd-stale-connection create mode 100644 tests/qemu-iotests/tests/nbd-stale-connection.out base-commit: 3876503faff51ce3a132dbbd0ab42c10f2269319 -- 2.43.0
