GNU bug report logs -
#12980
24.3.50; Zombie process left after call-process
Previous Next
Reported by: Harald Hanche-Olsen <hanche <at> math.ntnu.no>
Date: Sat, 24 Nov 2012 09:37:02 UTC
Severity: important
Tags: patch
Merged with 14515
Found in versions 24.3, 24.3.50
Done: Paul Eggert <eggert <at> cs.ucla.edu>
Bug is archived. No further changes may be made.
Full log
Message #22 received at 12980 <at> debbugs.gnu.org (full text, mbox):
On 11/29/12 10:04, Eli Zaretskii wrote:
>> + /* CHILD must be a child process that has not been reaped, and
>> + STATUS and OPTIONS must be valid. */
>> + eassert (errno == EINTR);
>
> Are we sure that either CHILD will have exited at this point, or else
> OPTIONS won't include WNOHANG?
It's unlikely that CHILD will have exited at this point. That can
happen only if CHILD exited after the immediately-preceding waitpid
call and before this eassert. In such a case, CHILD has exited but
has not been reaped.
It's common for OPTIONS to not include WNOHANG (wait_for_termination
does this), and when that happens it's almost always the case that
CHILD has not exited at this point.
> Can this function be ever called if
> neither of these conditions is true?
By "this function" I assume you mean get_child_status. Yes, it's
quite common. For example, Fcall_process invokes wait_for_termination,
and it's common for wait_for_termination to invoke get_child_status
before CHILD has exited, and without WNOHANG in OPTIONS.
This bug report was last modified 11 years and 344 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.