On 3/20/20 2:47 PM, Eric Blake wrote:
We've recently been hitting a transient hung rpm build when using
make
4.3, due to a bug in test-nbd-tls-psk.sh. We're still trying to
isolate the correct fix for that bug (it might be in the nbd plugin
proper, but more likely is an issue in libnbd's tls handling of
connection close), but in the meantime, this patch should at least
cause a graceful fail rather than make hanging due to an nbdkit
process that has hung.
Signed-off-by: Eric Blake <eblake(a)redhat.com>
---
tests/functions.sh.in | 31 ++++++++++++++++++++++++++++---
1 file changed, 28 insertions(+), 3 deletions(-)
To see the timeout in action, try applying this temporary patch, then
running
make -C tests check TESTS=test-nbd-extents.sh
diff --git i/plugins/data/data.c w/plugins/data/data.c
index cfbebc00..8c201ec0 100644
--- i/plugins/data/data.c
+++ w/plugins/data/data.c
@@ -81,10 +81,12 @@ data_load (void)
}
/* On unload, free the sparse array. */
+#include <unistd.h>
static void
data_unload (void)
{
free_sparse_array (sa);
+ sleep(15);
}
/* Parse the base64 parameter. */
diff --git i/tests/functions.sh.in w/tests/functions.sh.in
index e483505e..22840c86 100644
--- i/tests/functions.sh.in
+++ w/tests/functions.sh.in
@@ -152,14 +152,14 @@ kill_nbdkit ()
# Start with SIGTERM, and wait for graceful exit
kill $pid
- for i in {1..60}; do
+ for i in {1..10}; do
if ! kill -0 $pid 2>/dev/null; then
break
fi
sleep 1
done
# If nbdkit has not exited, try SIGKILL and fail the test
- if test $i = 60; then
+ if test $i = 10; then
echo "error: nbdkit pid $pid failed to respond to SIGTERM"
kill -9 $pid
# Append our failure after other cleanups
--
Eric Blake, Principal Software Engineer
Red Hat, Inc. +1-919-301-3226
Virtualization:
qemu.org |
libvirt.org