Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 13 May 2003 05:45:38 +0000
From:      Anthony Naggs <tony@ubik.demon.co.uk>
To:        Don Lewis <truckman@FreeBSD.org>
Cc:        DougB@FreeBSD.org
Subject:   Re: mtv leaves a zombie after exit
Message-ID:  <RJoXIMACaIw%2BIwbI@ubik.demon.co.uk>
In-Reply-To: <200305121726.h4CHQOM7048113@gw.catspoiler.org>
References:  <3EBFB3CC.5673108C@mindspring.com> <200305121726.h4CHQOM7048113@gw.catspoiler.org>

next in thread | previous in thread | raw e-mail | index | archive | help
In article <200305121726.h4CHQOM7048113@gw.catspoiler.org>, Don Lewis
<truckman@FreeBSD.org> writes
>On 12 May, Terry Lambert wrote:
>> Doug Barton wrote:
>>> For some time now on -current whenever I run mtv, it leaves a zombie after
>>> it exits:
>>> 
>>> USER     PID  PPID %CPU %MEM   VSZ  RSS STAT STARTED      TIME COMMAND
>>> doug       0     1  0.0  0.0     0    0 ZW   -         0:00.00  (mtvp)
>>> 
>>> It runs fine, displays the video fine, but it always leaves a zombie.
>> 
>> Zombies exist when the parent process fails to reap child
>> exit status.  This may be a bug in your shell.  If it's not
>> a bug in your shell, then it's a bug in kernel (probably in
>> fork_exit).
>
>In this case PPID == 1, so even if the parent process failed to reap the
>child, init should have reaped the mtvp process when the parent process
>exited.  

The parent must have exit have the child process terminated, the shell
(iirc) inherits the process.  On (at least) some Unix flavours the child
is not reaped in this case - the process is already terminated so the
shell doesn't get a SIGCHILD.  (This is mentioned, for instance, in Unix
Internals by Uresh Vahalla.)

I'm not familiar enough with FreeBSD to know whether this is the
expected behaviour.

Probably the simplest fix would be for mtv to wait() for the child mtvp
to terminate before it exits itself.

>The "ZW" state looks suspicious.  I'd expect to see just "Z".
>Maybe that's why the process isn't getting reaped.

It shouldn't have any effect.  The zombie is implicitly idle, the W just
means the system has noticed & swapped it out.


Tony



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?RJoXIMACaIw%2BIwbI>