From 751a4c4d036d83b98ac39cfcb2de4de10f1139e1 Mon Sep 17 00:00:00 2001 From: Pádraig Brady
Date: Tue, 18 Dec 2012 13:06:15 +0000 Subject: tests: avoid a race in timeout-group.sh * tests/misc/timeout-group.sh: The kernel might possibly delay signal propagation to timeout.cmd long enough, that it exits normally without running the signal handler (as sleep will be in the same process group and so get the signal too). So avoid this by explicitly checking that the signal handler is called, which should always happen under normal circumstances. Reported by Stefano Lattarini on linux-2.6.30-2-686 and bash-4.2.36. --- tests/misc/timeout-group.sh | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'tests/misc') diff --git a/tests/misc/timeout-group.sh b/tests/misc/timeout-group.sh index 4cefc33bf..7117abb5a 100755 --- a/tests/misc/timeout-group.sh +++ b/tests/misc/timeout-group.sh @@ -34,7 +34,11 @@ cat > timeout.cmd <<\EOF #!/bin/sh trap 'touch int.received; exit' INT touch timeout.running -sleep $1 +count=$1 +until test -e int.received || test $count = 0; do + sleep 1 + count=$(expr $count - 1) +done EOF chmod a+x timeout.cmd -- cgit v1.2.3-70-g09d2