Re: BUG: wedged processes, test program supplied

From: Albert Cahalan
Date: Wed Dec 20 2006 - 01:06:51 EST


On 12/20/06, Mike Galbraith <efault@xxxxxx> wrote:
On Tue, 2006-12-19 at 21:46 -0500, Albert Cahalan wrote:
> Somebody PLEASE try this...

I was having enough fun with cloninator (which was whitespace munged
btw).

Anything stuck? Besides refusing to die, that beast slays debuggers
left and right. I just need to add execve of /proc/self/exe and a massive
storm of signals on the alternate stack.

In the original post, I also mangled the recommended ps command:
ps -Ccloninator
-mwostat,ppid,pid,tid,nlwp,pending,sigmask,sigignore,caught,wchan

Leave out pid,tid,nlwp if you need to save screen space, like so:
ps -Ccloninator -mwostat,ppid,pending,sigmask,sigignore,caught,wchan

(note: procps versions prior to 3.2.7 are mostly fine, but will mess
up the PENDING column for any single-threaded processes you get)

This is fun to look at:
watch ps -Ccloninator fostat,ppid,wchan:9,comm

> Normally, when a process dies it becomes a zombie.
> If the parent dies (before or after the child), the child
> is adopted by init. Init will reap the child.
>
> The program included below DOES NOT get reaped.

While true wasn't a great test recommendation :)

Oh. I wanted to be sure you'd see the problem. Did you have
some... difficulty? A plain old ^C should make things stop.
The second test program is like the first, but missing SIGCHLD
from the clone flags, and hopefully not whitespace-mangled.

Note that the test program is not normally a fork bomb.
It self-limits itself to 42 tasks via a lock in shared memory.
If things are working OK, you should see no more than
about 60 tasks.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/