Subject: Re: Problem with NetBSD 1.4_alpha with signals and persistent processes
To: Gandhi woulda smacked you <greywolf@starwolf.com>
From: Brian Buhrow <buhrow@cats.ucsc.edu>
List: current-users
Date: 04/20/1999 11:00:18
Hello folks. Following up on my own post about children processes not
getting signaled properly when parents exit, I think I've made some
progress, but now need some advice on how to proceed. Window uses a
series of sigprocmask(2) calls to set up the signals for its children and
its guardians when it starts the sub-shells. When it exits, on the working
system, the subshell gets a SIGHUP signal which causes it to wake up and
kill its children and die. On the broken system, 1.4_alpha as of April 15,
the subshell gets no such signal.
I believe the bug is in /usr/src/sys/kern/kern_sig.c, but since the
working version of this file I have is 21 revisions older than the broken
version, and since the switch to uvm is between them, I can't say when it
broke, exactly. However, I think that stuff in kern_sig.c about the
sigignore list might be the culprit.
Is there any place I can look to see exactly what changed for each
revision of the kern_sig.c file? How about checking out previous versions
of the file in an effort to track exactly which change caused the problem?
Although I haven't tried, I suspect that NetBSD 1.3.3 doesn't exhibit this
behavior, so I might be able to look at the kern_sig.c from that release
and make a determination by examining that fewer versions of the file.
Any help or ideas that I might have generated would be greatly
appreciated. I'd like to see thisproblem fixed in 1.4, as I think it is a
rather serious one.
-thanks
-Brian
Here are the revisions of the kern_sig.c file I'l looking at.
(working version)
/* $NetBSD: kern_sig.c,v 1.66 1997/04/28 04:49:28 mycroft Exp $ */
(broken version)
/* $NetBSD: kern_sig.c,v 1.87 1999/03/24 05:51:23 mrg Exp $ */