Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 21 Oct 2006 17:14:05 -0700 (PDT)
From:      Don Lewis <truckman@FreeBSD.org>
To:        davidxu@FreeBSD.org
Cc:        cvs-src@FreeBSD.org, src-committers@FreeBSD.org, cvs-all@FreeBSD.org
Subject:   Re: cvs commit: src/sys/kern kern_exit.c
Message-ID:  <200610220014.k9M0E5mG061752@gw.catspoiler.org>
In-Reply-To: <200610212359.k9LNxF2P014387@repoman.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On 21 Oct, David Xu wrote:
> davidxu     2006-10-21 23:59:15 UTC
> 
>   FreeBSD src repository
> 
>   Modified files:
>     sys/kern             kern_exit.c 
>   Log:
>   Since revision 1.333 of kern_sig.c no longer uses P_WEXIT, the change
>   opened a race window which can cause memory leak in signal queue.
>   Here we free memory for signal queue when process state is set to
>   PRS_ZOMBIE.
>   
>   Revision  Changes    Path
>   1.291     +8 -2      src/sys/kern/kern_exit.c

I wonder if the earlier change is what broke portupgrade after I
upgraded from an August 31st version of current to yesterday's version.
The symptoms were random processes dying from SIGHUP.  It was easy to
reproduce by just going to a port directory and running
	script foo make clean
a few times.  I'd randomly see make complain about a non-zero exit
status from uname or some other sub-process.  I tracked the problem back
to the SIGHUP bit being set in td2's sigqueue in fork1().   As a
workaround, I added a call to sigqueue_init() where td2 gets bzero'ed.

Disappearing back into the void ...




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200610220014.k9M0E5mG061752>