DragonFly bugs List (threaded) for 2009-01
DragonFly BSD
DragonFly bugs List (threaded) for 2009-01
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

Re: [issue1137] Process stuck with an empty STATE

From: YONETANI Tomokazu <qhwt+dfly@xxxxxxxxxx>
Date: Sun, 25 Jan 2009 18:06:33 +0900

On Sun, Jan 25, 2009 at 12:24:26AM -0800, Matthew Dillon wrote:
> :I found a similar zombie process on a PC running -DEVELOPMENT
> :(as of 89f297df...), with p_stat==SACTIVE and p_lock==1.  The stuck
> :process was git again.  The previous ones were `git log', and this time
> :`git show', all of which involve $PAGER.  I tried issuing the same command
> :several times, but I couldn't reproduce another zombie yet.
>     Check p_xstat, see if it is SIGSTOP or SIGTSTP.   I think it's going
>     from SZOMB -> SSTOP -> SACTIVE (on kill or cont) due to the signal.
>     The p_lock == 1 is due to the exiting LWP and is correct.

Yes, that's SIGTSTP (attached `p *zombproc->lh_first' result).

>     I just made another commit which should catch zombied processes which
>     are improperly resurrected by a stop signal.  However, I couldn't
>     reproduce it to test the fix... the window of opportunity is fairly
>     small. 

I found how I made the zombie:
$ unset PAGER (or unsetenv if you like *csh)
$ cd /path/to/git/repo
$ git show 55a9cd0fa2b75e61230e2802b78eaec8937a1e42
here the pager display 7 lines of commitlog and the patch, and `(END)'
at the end.  Suspend it by pressing ctrl+Z, then type fg to resume,
and press `q' in the pager to leave it.

$ ps x
now you see another zombie.

I'll try this on the new kernel and see if I can still reproduce it.


Attachment: zombie.txt.bz2
Description: Binary data

[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]