An error during negotiation, e.g. by the client trying to open an export that does not exist, should not lead to a crash of the server process.
The middle six patches of this series are taken from my series "block: Rework bdrv_close_all()", so here is a git-backport-diff against v7 of that series: Key: [----] : patches are identical [####] : number of functional differences between upstream/downstream patch [down] : patch is downstream-only The flags [FC] indicate (F)unctional and (C)ontextual differences, respectively 001/8:[down] 'nbd: client_close on error in nbd_co_client_start' 002/8:[----] [--] 'iotests: Rename filter_nbd to _filter_nbd in 083' 003/8:[0004] [FC] 'iotests: Change coding style of _filter_nbd in 083' 004/8:[0004] [FC] 'iotests: Move _filter_nbd into common.filter' 005/8:[0004] [FC] 'iotests: Make _filter_nbd drop log lines' 006/8:[----] [-C] 'iotests: Make _filter_nbd support more URL types' 007/8:[----] [--] 'iotests: Make redirecting qemu's stderr optional' 008/8:[down] 'iotests: Add test for a nonexistent NBD export' Max Reitz (8): nbd: client_close on error in nbd_co_client_start iotests: Rename filter_nbd to _filter_nbd in 083 iotests: Change coding style of _filter_nbd in 083 iotests: Move _filter_nbd into common.filter iotests: Make _filter_nbd drop log lines iotests: Make _filter_nbd support more URL types iotests: Make redirecting qemu's stderr optional iotests: Add test for a nonexistent NBD export nbd/server.c | 3 +- tests/qemu-iotests/083 | 13 +------ tests/qemu-iotests/083.out | 10 ------ tests/qemu-iotests/143 | 73 ++++++++++++++++++++++++++++++++++++++++ tests/qemu-iotests/143.out | 7 ++++ tests/qemu-iotests/common.filter | 13 +++++++ tests/qemu-iotests/common.qemu | 15 +++++++-- tests/qemu-iotests/group | 1 + 8 files changed, 109 insertions(+), 26 deletions(-) create mode 100755 tests/qemu-iotests/143 create mode 100644 tests/qemu-iotests/143.out -- 2.7.0