screen-devel
[Top][All Lists]
Advanced

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

Re: [screen-devel] [PATCH for screen-v4] Fix screen leaving zombie proce


From: Axel Beckert
Subject: Re: [screen-devel] [PATCH for screen-v4] Fix screen leaving zombie processes
Date: Fri, 22 Nov 2019 15:57:36 +0100
User-agent: NeoMutt/20170113 (1.7.2)

Hi Amadeusz,

sorry for the late reply. Didn't find the time to try the new patch on
that affected production VM earlier.

On Wed, Nov 06, 2019 at 09:11:08PM +0100, Amadeusz Sławiński wrote:
> > I am wondering why the zombies show up at all.

Me too.

> > They were reaped correctly on my test process (code below). I
> > guess there is some race with SIGCHLD handler.

From https://savannah.gnu.org/bugs/?25089 it seems obvious to me that
this case only shows up under very specific circumstances. So far it
only has been reported on either a Pentium II with 233 MHz in 2008
(which was already quite slow and old back then) and on an VMware ESX
VM (which might be considered inperformant, too, from some point of
view).

I also fail to reproduce this on any other machine than this VMware
ESX VM. But on that machine, I can easily reproduce it by spawning
dozens of windows and then starting to close them again.

On Wed, Nov 06, 2019 at 09:32:20PM +0100, Amadeusz Sławiński wrote:
> > Right that makes sense, looking at how SIGCHLD is handled, seems like
> > we only tell it to wait for one child, so if it is slow system, a lot
> > of childs can stop, but it may only wait for one of them:
> > 
> > https://git.savannah.gnu.org/cgit/screen.git/tree/src/screen.c?h=screen-v4#n1593
> > 
> > seems, like this line should have += instead of =
> 
> and also this one
> https://git.savannah.gnu.org/cgit/screen.git/tree/src/screen.c?h=screen-v4#n1571
> should be -= 1;
> 
> > 
> > Axel, can you try changing above line instead?

Done that now and it unfortunately doesn't solve the issue. :-(

I've put 0001-Fix-screen-leaving-zombie-processes.patch
from https://savannah.gnu.org/support/download.php?file_id=47810 (via
https://savannah.gnu.org/bugs/?25089#comment7) directly into
debian/patches/, replaced the former patch with its name in
debian/patches/series, removed the "src/" from the path in the patch
to be equivalent to the paths in the official tar balls, and then
build the 4.6.2-3 debian package.

I quickly get one zombie per closed window:

$ ps auxwwww | egrep "defunct|Z" | fgrep -v grep
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
beckert  13656  0.0  0.0      0     0 ?        Zs   14:44   0:00 [zsh] <defunct>
beckert  13658  0.0  0.0      0     0 ?        Zs   14:44   0:00 [zsh] <defunct>
beckert  13660  0.0  0.0      0     0 ?        Zs   14:44   0:00 [zsh] <defunct>
beckert  13662  0.0  0.0      0     0 ?        Zs   14:44   0:00 [zsh] <defunct>
beckert  13664  0.0  0.0      0     0 ?        Zs   14:44   0:00 [zsh] <defunct>
beckert  13666  0.0  0.0      0     0 ?        Zs   14:44   0:00 [zsh] <defunct>
beckert  13669  0.0  0.0      0     0 ?        Zs   14:44   0:00 [zsh] <defunct>
beckert  13675  0.0  0.0      0     0 ?        Zs   14:44   0:00 [zsh] <defunct>
beckert  13677  0.0  0.0      0     0 ?        Zs   14:44   0:00 [zsh] <defunct>
beckert  13679  0.0  0.0      0     0 ?        Zs   14:44   0:00 [zsh] <defunct>
beckert  13681  0.0  0.0      0     0 ?        Zs   14:44   0:00 [zsh] <defunct>

                Kind regards, Axel
-- 
PGP: 2FF9CD59612616B5      /~\  Plain Text Ribbon Campaign, http://arc.pasp.de/
Mail: address@hidden  \ /  Say No to HTML in E-Mail and Usenet
Mail+Jabber: address@hidden  X
https://axel.beckert.ch/   / \  I love long mails: https://email.is-not-s.ms/

Attachment: signature.asc
Description: PGP signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]