On Mon, Mar 30, 2020 at 03:16:59PM -0500, Eric Blake wrote:
On 3/30/20 2:59 PM, Eric Blake wrote:
nbdkit 1.2 as a server waits for read() to see EOF, even after the client has sent NBD_CMD_DISC. That was fixed in mbdkit 1.4; and most modern NBD servers are smarter than this (they close() the write end of their traffic soon after NBD_CMD_DISC). But it's easy enough to revert nbdkit commit c70616f8 to get back to a server with the same behavior as the older nbdkit, at which point both 'cd /path/to/libnbd && make check PATH=/path/to/nbdkit'
Making the obvious correction: cd /path/to/libnbd && make check PATH=/path/to/nbdkit:$PATH
and 'cd /path/to/nbdkit && /path/to/libnbd/run make check' will hang without this series.
In short, this series is restoring the shutdown(SHUT_WR) call that got lost from plugins/nbd/nbd.c when nbdkit switched to libnbd in commit ab7760fc.
The series looks fine on inspection, although I guess it's the kind of thing that may reveal weird deadlocks in some corner cases, but we'll find those through testing. ACK Rich. -- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones Read my programming and virtualization blog: http://rwmj.wordpress.com virt-top is 'top' for virtual machines. Tiny program with many powerful monitoring features, net stats, disk stats, logging, etc. http://people.redhat.com/~rjones/virt-top