panic: Exit: Single threading fouled up

Daniel Eischen eischen at vigrid.com
Mon Apr 26 11:18:58 PDT 2004


On Mon, 26 Apr 2004, Daniel Eischen wrote:

> On Mon, 26 Apr 2004, Gavin Atkinson wrote:
> 
> > 
> > Hi,
> > 
> > I've seen this panic twice now, once on a heavily loaded UP machine
> > running gnome at the time, and once on an SMP (hyperthreaded) machine
> > which was mostly idle as it was shutting down. Both running with ULE.
> [ ... ]
> > 
> > Unfortunately I have been unable to get a dump on either machine.  Sadly,
> > it's not not reproducible.
> 
> There looks to be a missing PROC_UNLOCK in kern/kern_sig.c::sigexit().
> 
> Does this patch help any?

Nevermind.  coredump() drops the proc lock.

There does look to be a couple ways out of coredump() without releasing
GIANT, though.

	if (vn_start_write(vp, &mp, V_NOWAIT) != 0) {
		lf.l_type = F_UNLCK;
		if (locked)
			VOP_ADVLOCK(vp, (caddr_t)p, F_UNLCK, &lf, F_FLOCK);
		if ((error = vn_close(vp, FWRITE, cred, td)) != 0)
->
			return (error);
		if ((error = vn_start_write(NULL, &mp, V_XSLEEP | PCATCH)) != 0)
->
			return (error);
		goto restart;
	}

-- 
Dan Eischen



More information about the freebsd-current mailing list