At Wednesday 21 July 2010, Ralf Wildenhues wrote:
> Hi Stefano,
> 
> * Stefano Lattarini wrote on Mon, Jul 19, 2010 at 10:41:13PM CEST:
> > And here is a follow-up patch to reduce possible race conditions
> > w.r.t. reuse of process PIDs.  The patch is against the maint
> > branch.
> 
> I'm sorry but I have issues here, see below.
> 
> > Subject: [PATCH] Remove a race condition from test cond5.test.
> > 
> > * tests/cond5.test: Do not blindly try to kill the pid of the
> > backgrounded Automake process after the sleep, since it might
> > have terminated by itself, and its PID reused by a new and
> > unrelated process.  Instead, rely on a more complex but     more
> > correct combo of wrapper script(s) and temporary file(s).
> > Necessity of this fix suggested by Ralf Wildenhues.
> > 
> > --- a/tests/cond5.test
> > +++ b/tests/cond5.test
> > @@ -44,25 +44,42 @@ END
> > [CUT]
> > 
> > -echo "$me: automake process $pid hung"
> > -kill $pid
> > +# And yes, the repated command substitutions with `cat' are
> > meant.
> 
> That doesn't seem ideal to me though.  If the file is removed at
> the right time, cat or kill produces an unwanted error message.
Yes, but that's not a problem IMO, since the test is going to fail 
anyway if this code path has been taken.

> > +echo "$me: automake process `cat prog-not-finished` hung"
> > +(kill `cat prog-not-finished`) # some shells require this
> > subshell
> > 
> >  Exit 1
> 
> Here, we'd probably want to wait for the $SHELL -x process to
> finish.
Definitely right.  Not waiting for its termination is a more serious 
error which could cause intermittent weird behaviours.

> In reading the original code (i.e., the one before this patch), I
> see that I was mistaken last time in that the default code path
> does not try to kill a process with an old, long-gone PID.  Sorry
> about my misinterpretation, but upon reading again I think there
> is no change warranted.
OK, let's drop this patch then.  It was quite ugly anyway.
> The change that you already pushed was
> good, though.
Good!

Regards,
   Stefano

Reply via email to