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>