bmake not killing childrens

Matthew Dillon dillon at apollo.backplane.com
Thu Oct 5 08:50:44 PDT 2006


: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.
:
:Joerg

    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
    fork().

					-Matt
					Matthew Dillon 
					<dillon at xxxxxxxxxxxxx>





More information about the Users mailing list