[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [OSSTEST PATCH] TestSupport: use timeout(1)
On Mon, 2014-12-08 at 14:08 +0000, Ian Jackson wrote: > If a command we run times out, the machinery in tcmdex() will arrange > for the ts-* script to spot the timeout, and stop waiting for it. > > However it is also necessary for the command we ran to die. It has a > copy of the owner daemon fd, so if it doesn't, our resources won't get > freed. In sufficiently exciting bugs, our allocation might continue > indefinitely, while a subprocess of ours hangs on after we are long > gone. > > timeout(1) does not print a message when the process times out (!) So > we can't do away with the logic in tcmdex(). I think you mean s/tcmdex/cmd/ in a few places here, since cmd() is where all the existing timeout stuff is. > We set the timeout(1) > timeout to 30s more than our own timeout, so that tcmdex() will time > out first and print a message. > > We could use alarm(1) as we do in Osstest/Serial/sympathy.pm but that > program isn't packaged and its unsophisticated approach is not really > appropriate for arbitrary nonconsenting programs. > > Signed-off-by: Ian Jackson <Ian.Jackson@xxxxxxxxxxxxx> Apart from that niggle: Acked-by: Ian Campbell <ian.campbell@xxxxxxxxxx> > --- > Osstest/TestSupport.pm | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/Osstest/TestSupport.pm b/Osstest/TestSupport.pm > index a3b6936..ca680c0 100644 > --- a/Osstest/TestSupport.pm > +++ b/Osstest/TestSupport.pm > @@ -388,7 +388,10 @@ sub sshopts () { > sub tcmdex { > my ($timeout,$stdout,$cmd,$optsref,@args) = @_; > logm("executing $cmd ... @args"); > - my $r= cmd($timeout,$stdout, $cmd,@$optsref,@args); > + # We use timeout(1) as a backstop, in case $cmd doesn't die. We > + # need $cmd to die because we won't release the resources we own > + # until all of our children are dead. > + my $r= cmd($timeout,$stdout, 'timeout',$timeout+30, > $cmd,@$optsref,@args); > $r and die "status $r"; > } > _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |