On 12/18/2012 02:18 PM, Pádraig Brady wrote: > > I noticed a possible race in the test script. > So I'll apply this soon. > > thanks, > Pádraig. > > commit 09f72d285514a91495960ea3b0570251eed415b0 > Author: Pádraig Brady <[email protected]> > Date: Tue Dec 18 13:06:15 2012 +0000 > > 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. > > diff --git a/tests/misc/timeout-group.sh b/tests/misc/timeout-group.sh > index 4cefc33..7117abb 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 > > Seems sensible to me. Let's hope it works; I'll re-open this report if I ever stumble into this problem again.
Thanks, Stefano
