DragonFly users List (threaded) for 2006-10
Re: bmake not killing childrens
:On Wed, Oct 04, 2006 at 03:02:35PM -0700, Matthew Dillon wrote:
:> It is a very small window, but it can be hit in a heavily-forking build.
:> I think the DragonFly bug causes more reports of the problem then the
:> bug in make, but both have to be fixed.
:Are you sure that is the issue? It doesn't happen on NetBSD for example.
There are two issues. One is the code bug... but that is a very small
window, probably no more then 5uS. The second issue is a bug in
DragonFly's forking code where a process group signal (such as ^C)
will not propogate to a child process that is in the middle of being
fork()ed by its parent. The latter is a far more visible bug.
Other BSDs have a good chance of having the same fork()ing bug. It
can occur if any kernel malloc call in fork1() blocks.
The code bug... the improper use of signal(... SIG_IGN) to test the
current handler, is definitely a bug and definitely needs to be fixed.
The fork()ing bug also needs to be fixed, probably by putting a lock
in the process group structure to interlock signal propogation and