Date: Sun, 29 Jul 2001 15:39:00 -0700 (PDT) From: Matthew Jacob <mjacob@feral.com> To: John Baldwin <jhb@FreeBSD.org> Cc: <smp@FreeBSD.org> Subject: RE: kaboom... Message-ID: <20010729153617.C44279-100000@wonky.feral.com> In-Reply-To: <XFMail.010726080719.jhb@FreeBSD.org>
index | next in thread | previous in thread | raw e-mail
>
> This is new however. The real problem is something trap'd during exit1(). It
> would be helpful to see what source line is at exit1+0x15e4. The other issue
> is that I've no idea why the process lock is being used as the interlock for a
> vm_map lock.
Happened again once. It may be if I do 2 make -j 8 kernel builds I get this.
The panic is somewhere in exit1 where marked:
--------
/*
* notify interested parties of our demise.
*/
PROC_LOCK(p);
KNOTE(&p->p_klist, NOTE_EXIT);
/*
* Notify parent that we're gone. If parent has the PS_NOCLDWAIT
* flag set, or if the handler is set to SIG_IGN, notify process
* 1 instead (and hope it will handle this situation).
*/
if ((p->p_pptr->p_procsig->ps_flag & PS_NOCLDWAIT)
|| p->p_pptr->p_sigacts->ps_sigact[_SIG_IDX(SIGCHLD)] == SIG_IGN) {
struct proc *pp = p->p_pptr;
>>>>>
proc_reparent(p, initproc);
/*
* If this was the last child of our parent, notify
* parent, so in case he was wait(2)ing, he will
* continue.
*/
if (LIST_EMPTY(&pp->p_children))
wakeup((caddr_t)pp);
}
PROC_LOCK(p->p_pptr);
if (p->p_sigparent && p->p_pptr != initproc)
psignal(p->p_pptr, p->p_sigparent);
else
psignal(p->p_pptr, SIGCHLD);
PROC_UNLOCK(p->p_pptr);
---------
Shouldn't there be a PROC_LOC(p->p_pptr) prior to trying to touch or test
stuff in the paren't PROC structure?
Would it be easier to move PROC_LOCK(p->p_pptr) above the conditional?
Naive....
-matt
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-smp" in the body of the message
help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20010729153617.C44279-100000>
