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