On Mon, Mar 10, 2003 at 01:00:15PM -0500, John Baldwin wrote: > On 08-Mar-2003 Kris Kennaway wrote: > > On Sat, Mar 08, 2003 at 11:46:34AM +0100, Poul-Henning Kamp wrote: > >> > >> Just got this crash on -current, and I belive I have seen similar > >> before. addr2line(1) reports the faulting address to be > >> ../../../kern/kern_fork.c:395 > >> which is in the inner loop of pid collision avoidance. > > > > I've been running this patch from Alfred for the past month or so on > > bento, which has fixed a similar panic I was seeing regularly. > > Using just a shared lock instead of an xlock should be ok there. You > aren't modifying the process tree, just looking at it. OTOH, the > proc lock is supposed to protect p_grp and p_session, so they shouldn't > be NULL. :(
I have a suspiscion that the bug is actually in wait1(): sx_xlock(&proctree_lock); [...] /* * Remove other references to this process to ensure * we have an exclusive reference. */ leavepgrp(p); sx_xlock(&allproc_lock); LIST_REMOVE(p, p_list); /* off zombproc */ sx_xunlock(&allproc_lock); LIST_REMOVE(p, p_sibling); sx_xunlock(&proctree_lock); Shouldn't we be removing the process from zombproc before setting p_pgrp to NULL via leavepgrp()? Does this even matter at all when both fork1() and wait1() are still protected by Giant? Tim To Unsubscribe: send mail to [EMAIL PROTECTED] with "unsubscribe freebsd-current" in the body of the message