[Libguestfs] [nbdkit PATCH 0/2] Fix testsuite deadlocks during close

Eric Blake eblake at redhat.com
Thu Apr 19 02:51:06 UTC 2018


Commit 9e6d990f exposed a pre-existing deadlock between the nbd
plugin as client and parallel nbdkit as server.  Prior to that
commit, the deadlock was "resolved" because we unloaded the .so
in parallel to a .close callback that never completed (yes, it's
nasty that it usually? let the testsuite pass), but now we
correctly refuse to unload a plugin that has not returned from
.close, which makes 'test-nbd' and 'test-parallel-nbd.sh' hang.

Here are two patches which each independently break the deadlock,
but where both patches should be applied so that we are robust
to non-nbdkit partners that exhibit the same behaviors as our
unpatched deadlock.  Since testsuite hangs make automated testing
less than useful, I'm going ahead and pushing them now.

Eric Blake (2):
  nbd: Inform server of intent to quit
  nbd: Don't read after client sends NBD_CMD_DISC

 src/connections.c | 5 +++--
 plugins/nbd/nbd.c | 4 +++-
 2 files changed, 6 insertions(+), 3 deletions(-)

-- 
2.14.3




More information about the Libguestfs mailing list