On 18/07/15 04:09, Peter Bray wrote: > On 17/07/15 06:56 PM, Pádraig Brady wrote: >> while true; do time gtimeout 0.1 sleep inf; test $? != 124 && break; done > > Run this code on S10U8/32 for almost 12 hours without it stopping > itself. An almost 10 hours on S10U11/32 with the same result (not > stopping itself).
Cool. That suggests it's a kernel issue with large timeout values. > > Made the requested change to src/timeout.c > > Backup : src/timeout.c.orig > Editted : src/timeout.c > > Command : gdiff > > 139c139 > < if (timer_create (CLOCK_REALTIME, NULL, &timerid) == 0) > --- > > if (timer_create (CLOCK_MONOTONIC, NULL, &timerid) == 0) > > Run as an unprivileged user, gives the following error summary: > > % egrep '(FAIL|ERROR) ' tests/test-suite.log | sed -e 's/FAIL /FAIL /' > FAIL tests/misc/tee.sh (exit status: 1) > FAIL tests/misc/timeout-blocked.pl (exit status: 1) > FAIL tests/tail-2/wait.sh (exit status: 1) > FAIL tests/tail-2/retry.sh (exit status: 1) > FAIL tests/tail-2/symlink.sh (exit status: 1) > FAIL tests/ls/infloop.sh (exit status: 1) > FAIL tests/tail-2/follow-name.sh (exit status: 1) > FAIL tests/tail-2/follow-stdin.sh (exit status: 1) That's a strange restriction. Linux doesn't have that at least. > > On Solaris 10 Update 8 with Solaris 10 Update 11 and Solaris 11.2 have > the additional tmpfs build problems mentioned in BUG-21062 > > With the following executive summary: > > % grep "timer_create: Not owner" ./tests/test-suite.log | sort | uniq -c > 1 + timeout: warning: timer_create: Not owner > 7 +timeout: warning: timer_create: Not owner > 29 timeout: warning: timer_create: Not owner > > When run as "root" on Solaris 10 Update 8, the attached > "test-suite.log-monotonic-root" shows that two tests FAIL: > > % egrep '(FAIL|ERROR) ' test-suite.log-*-root | sed -e 's/FAIL /FAIL /' > FAIL tests/misc/tee.sh (exit status: 1) > FAIL tests/misc/timeout-parameters.sh (exit status: 1) > > With the following section of the attached log, showing a sequence of > failures (exit status = 124) on the root execution of the checks: > > +++ date +%s > ++ expr 2147483647 - 1437184440 + 100 > + KERNEL_OVERFLOW_LIMIT=710299307 > + timeout 710299307 sleep 0 > + test 0 '!=' 124 > + timeout 4294967296 sleep 0 > + test 124 = 0 > + fail=1 > ++ expr 4294967295 / 86400 + 1 > + timeout 49711d sleep 0 > + test 124 = 0 > + fail=1 > + timeout 999999999999999999999999999999999999999999999999999999999999d > sleep 0 > + test 124 = 0 > + fail=1 > + timeout 2.34e+5d sleep 0 > + test 124 = 0 > + fail=1 > + timeout 2.34 sleep 0 > + test 0 = 0 > + timeout .999999999 sleep 0 > + timeout --signal=invalid 1 sleep 0 > timeout: invalid: invalid signal > Try 'timeout --help' for more information. > > On Solaris 10 Update 11 as root, attached as > "test-suite.log-monotonic-root-s10u11" shows a more promising result but > still failure: > > +++ date +%s > ++ expr 2147483647 - 1437187249 + 100 > + KERNEL_OVERFLOW_LIMIT=710296498 Note we already check for similar 32 bit Linux/HPPA kernel issues in this test. If we found a maximal value that was problematic for solaris and ran the gating test in a loop 10 times say. The non determinism of this is awkward though. > The requirement for "root" privileges to use MONOTONIC is a non-starter > in my books as the utility can not lower privileges for the command it > runs - I hope you would agree. It seems that the tests fail even with > the CLOCK_MONOTONIC option. +! > I hope I am provided the requested / required information this time :-) Yes thanks for the extensive testing. Pádraig.
