The first patch ensures the nbd_receive_reply() fd handler is unregistered when the connection to the server breaks. This avoids high CPU consumption and flooding error messages.
The second patch introduces an NBD server fault injection script. Using this fake NBD server it is possible to exercise error handling code paths in the NBD client. The third patch adds qemu-iotests test case 080 to verify qemu-io exits with an error at each point where the connection can break. Stefan Hajnoczi (3): nbd: close socket if connection breaks tests: add nbd-fault-injector.py utility qemu-iotests: add 080 NBD client disconnect tests block/nbd-client.c | 33 +++-- tests/qemu-iotests/080 | 91 ++++++++++++ tests/qemu-iotests/080.out | 73 ++++++++++ tests/qemu-iotests/group | 1 + tests/qemu-iotests/nbd-fault-injector.py | 231 +++++++++++++++++++++++++++++++ 5 files changed, 414 insertions(+), 15 deletions(-) create mode 100755 tests/qemu-iotests/080 create mode 100644 tests/qemu-iotests/080.out create mode 100755 tests/qemu-iotests/nbd-fault-injector.py -- 1.8.5.3