BUG can fill process table

André Cruz (afafc@rnl.ist.utl.pt)
Fri, 3 Aug 2001 13:18:37 +0100


When a process (say dhcpcd) changes the IFF_UP flag to TRUE on an
interface (say eth0) to bring it up, a new process is created named
after the interface (eth0 in this case) and it's PPID is dhcpcd.

If dhcpcd later changes the IFF_UP flag to FALSE to bring the interface
down, the eth0 process dies but stays as a zombie. The problem is that
dhcpcd never receives a sigchld (suposedly eth0 is it's child) and even
if it executes a wait() no process is reaped and wait() returns -1.

The worse part of this is that when dhcpcd wants to bring up the
interface again a NEW eth0 process is created and so this starts to fill
up the process table.

I see two solutions for this: either the interface process start with a
PPID of 1 (I noticed that init has no problems dealing with them when
they die) or dhcpcd should receive a sigchld and be able to reap them.

Btw why are these process even created? 2.2 didn't do it I think.

I don't know where the problem lies so if someone could tell me who to
contact about this that would be great. Or maybe if this is already
known?

Thanks

----------
André Cruz

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/