From: Gerrit Pape <pape@smarden.org>
To: supervision@list.skarnet.org
Subject: Re: runit not collecting zombies
Date: Wed, 20 Jun 2007 16:23:25 +0000 [thread overview]
Message-ID: <20070620162325.26345.qmail@7d91355cde742c.315fe32.mid.smarden.org> (raw)
In-Reply-To: <20070619190751.GC27090@home.power>
[-- Attachment #1: Type: text/plain, Size: 2120 bytes --]
On Tue, Jun 19, 2007 at 10:07:51PM +0300, Alex Efros wrote:
> On Tue, Jun 19, 2007 at 06:13:25PM +0000, Gerrit Pape wrote:
> > Hi Alex, after checking the code, I currently cannot say that or how
> > runit could fail reaping zombies that detached and re-parented to pid 1.
> > On Linux running strace on pid 1 isn't supported AFAIK. To be sure that
> > runit is at fault, can you please check the kernel versions on your two
> > machines, can it be that they have changed at the time the problem
> > popped up? Does upgrading the Linux kernel to a more recent version
> > change anything?
>
> Yeah, I also think this may be kernel<->runit bug. But this bug happens
> previously on 2.6.16, and now I've it on 2.6.20 (upgraded few days ago).
>
> Moreover, looks like runit not just 'stop reaping zombies' at some point.
> Looks like it continue reaping them, but not all of them. Look:
[...]
> This server generate a lot of short-living processes every minute, i.e. it
> generate new processes much faster than new non-reaped zombies arise.
>
> I may be wrong, but I've a feeling on 2.6.16 new non-reaped zombies arise
> much faster - in few hours I got 8192 use processes and was forced to reboot.
>
> Maybe kernel just don't send SIGCHLD in some situation? Maybe some race
> condition in runit or kernel? Maybe if runit will try to do waitpid()
> every few seconds this will solve issue?
That could solve the issue, yes, but runit should know when to do
waitpid(), and I would like to find out why that goes wrong. I tried to
reproduce the problem on a Debian/unstable ppc with Linux 2.6.20.7, but
failed. Does this cuase a problem on your system?:
# cat >test.c <<EOT
#include <unistd.h>
int main () {
int pid, i;
for (i =0; i < 8193; ++i) {
pid =fork();
if (pid == -1) { write(1, "f\n", 2); }
if (!pid) {
daemon(0, 0);
// sleep(1);
_exit(0);
}
}
sleep(14);
_exit(0);
}
EOT
# gcc test.c
# ./a.out
If not, can you provide this service daemon that produced these amount
of detached short-living processes?
And I have another patch to try attached.
Thanks, Gerrit.
[-- Attachment #2: diff --]
[-- Type: text/plain, Size: 513 bytes --]
Index: src/runit.c
===================================================================
RCS file: /cvs/runit/src/runit.c,v
retrieving revision 1.14
diff -u -r1.14 runit.c
--- src/runit.c 21 Nov 2006 15:09:18 -0000 1.14
+++ src/runit.c 20 Jun 2007 16:21:46 -0000
@@ -194,7 +194,7 @@
strerr_warn3(INFO, "leave stage: ", stage[st], 0);
break;
}
- if (child > 0) {
+ if (child != 0) {
/* collect terminated children */
write(selfpipe[1], "", 1);
continue;
next prev parent reply other threads:[~2007-06-20 16:23 UTC|newest]
Thread overview: 113+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-05-24 23:07 Radek Podgorny
2007-05-26 10:35 ` Alex Efros
2007-05-26 10:45 ` Alex Efros
2007-05-26 12:55 ` Charlie Brady
2007-05-26 13:03 ` Alex Efros
2007-05-26 17:01 ` Paul Jarc
2007-06-02 14:55 ` Alex Efros
2007-06-03 11:10 ` Gerrit Pape
2007-06-03 14:33 ` Alex Efros
2007-06-03 16:31 ` Gerrit Pape
2007-06-11 13:11 ` Alex Efros
2007-06-18 13:45 ` Alex Efros
2007-06-19 18:13 ` Gerrit Pape
2007-06-19 19:07 ` Alex Efros
2007-06-20 16:23 ` Gerrit Pape [this message]
2007-06-20 16:57 ` Alex Efros
2007-06-20 18:35 ` Gerrit Pape
2007-06-23 4:42 ` Alex Efros
2007-06-26 9:59 ` Gerrit Pape
2007-07-07 7:16 ` Alex Efros
2007-07-07 18:13 ` Charlie Brady
2007-07-07 19:12 ` Alex Efros
2007-07-12 14:21 ` Charlie Brady
2007-07-12 14:41 ` Alex Efros
2007-07-12 14:45 ` Charlie Brady
2007-07-12 14:57 ` Alex Efros
2007-07-12 14:42 ` Charlie Brady
2007-07-12 14:43 ` Charlie Brady
2007-07-12 14:49 ` Alex Efros
2007-07-12 15:11 ` Charlie Brady
2007-07-12 15:15 ` Alex Efros
2007-07-12 15:40 ` Charlie Brady
2007-07-15 14:47 ` Alex Efros
2007-07-15 19:07 ` Alex Efros
2007-07-15 20:18 ` George Georgalis
2007-07-15 20:31 ` Paul Jarc
2007-07-15 22:35 ` George Georgalis
2007-07-15 23:06 ` Paul Jarc
2007-07-15 23:23 ` Charlie Brady
2007-07-16 0:09 ` Alex Efros
2007-07-16 2:11 ` Charlie Brady
2007-09-12 12:53 ` Radek Podgorny
[not found] ` <47939.::ffff:77.75.72.5.1189601606.squirrel@mail.podgorny.cz>
2007-09-12 13:55 ` Charlie Brady
2007-09-12 14:35 ` Alex Efros
2007-09-12 14:55 ` Charlie Brady
2007-09-12 15:00 ` Alex Efros
2007-09-12 16:02 ` Charlie Brady
2007-09-12 16:10 ` Radek Podgorny
2007-09-12 17:22 ` Alex Efros
2007-09-12 17:40 ` Charlie Brady
2007-09-12 18:18 ` Alex Efros
2007-09-12 19:07 ` Charlie Brady
2007-09-12 19:13 ` Alex Efros
2007-09-12 19:18 ` Charlie Brady
2007-09-12 19:30 ` Alex Efros
2007-09-12 19:37 ` Charlie Brady
2007-09-15 13:36 ` Alex Efros
2007-09-15 13:57 ` Alex Efros
2007-09-15 15:20 ` Charlie Brady
2007-09-15 15:28 ` Alex Efros
2007-09-15 15:47 ` Charlie Brady
2007-09-15 16:02 ` Alex Efros
2007-09-15 15:49 ` Charlie Brady
2007-09-15 15:55 ` Alex Efros
2007-09-15 16:02 ` Charlie Brady
2007-09-15 15:36 ` Alex Efros
2007-09-15 15:58 ` Charlie Brady
2007-09-15 14:03 ` Alex Efros
2007-09-17 7:56 ` Gerrit Pape
2007-09-17 9:07 ` Radek Podgorny
2007-09-17 11:59 ` Alex Efros
2007-09-18 8:14 ` Gerrit Pape
2007-09-18 11:33 ` Alex Efros
2007-09-18 11:45 ` Laurent Bercot
2011-02-15 13:12 ` [LONG] " Laurent Bercot
2011-02-15 15:00 ` Alex Efros
2011-02-15 15:22 ` Laurent Bercot
2007-09-12 16:04 ` Radek Podgorny
[not found] ` <35517.::ffff:77.75.72.5.1189613042.squirrel@mail.podgorny.cz>
2007-09-12 17:04 ` Alex Efros
2007-09-12 19:38 ` Mike Buland
2007-09-12 20:28 ` Alex Efros
2007-09-12 20:38 ` Alex Efros
2007-09-13 1:05 ` Mike Buland
2007-09-13 8:58 ` Radek Podgorny
[not found] ` <50411.::ffff:77.75.72.5.1189673890.squirrel@mail.podgorny.cz>
2007-09-13 10:57 ` Alex Efros
2007-09-13 12:06 ` Alex Efros
2007-09-13 14:31 ` Radek Podgorny
[not found] ` <51910.::ffff:77.75.72.5.1189693860.squirrel@mail.podgorny.cz>
2007-09-13 14:51 ` Alex Efros
2007-07-16 2:24 ` George Georgalis
2007-07-01 8:43 ` Radek Podgorny
2007-07-02 8:28 ` Gerrit Pape
2007-07-02 11:23 ` Radek Podgorny
2007-07-02 12:14 ` Gerrit Pape
2007-07-02 12:42 ` Radek Podgorny
2007-07-07 4:54 ` Alex Efros
2007-06-20 19:57 ` Charlie Brady
2008-02-25 7:25 ` Alex Efros
2008-02-25 14:57 ` Charlie Brady
2008-02-25 15:23 ` Radek Podgorny
[not found] ` <59012.::ffff:77.75.72.226.1203952988.squirrel@mail.podgorny.cz>
2008-02-25 15:26 ` George Georgalis
2008-02-25 15:32 ` Charlie Brady
2008-02-25 16:17 ` Alex Efros
2008-02-25 17:20 ` Mike Buland
2008-02-25 15:27 ` Radek Podgorny
[not found] ` <34616.::ffff:77.75.72.226.1203953244.squirrel@mail.podgorny.cz>
2008-02-25 16:15 ` Alex Efros
2008-02-27 8:19 ` Bernhard Graf
2008-02-27 8:36 ` Alex Efros
2008-02-27 8:58 ` Bernhard Graf
[not found] ` <F694D808C0BB4890A12C565F68B9A691@home.internal>
2008-02-25 16:24 ` rehan khan
2008-02-25 16:27 ` Charlie Brady
[not found] ` <54B6D6D6D32D4DB685F8CA9A836076D7@home.internal>
2008-02-25 17:11 ` rehan khan
2008-02-25 19:13 ` Charlie Brady
2008-10-21 21:46 ` Alex Efros
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20070620162325.26345.qmail@7d91355cde742c.315fe32.mid.smarden.org \
--to=pape@smarden.org \
--cc=supervision@list.skarnet.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).