Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 26 Apr 2004 14:18:57 -0400 (EDT)
From:      Daniel Eischen <eischen@vigrid.com>
To:        Gavin Atkinson <gavin.atkinson@ury.york.ac.uk>
Cc:        freebsd-current@freebsd.org
Subject:   Re: panic: Exit: Single threading fouled up
Message-ID:  <Pine.GSO.4.10.10404261411400.19645-100000@pcnet5.pcnet.com>
In-Reply-To: <Pine.GSO.4.10.10404261321030.1789-100000@pcnet5.pcnet.com>

next in thread | previous in thread | raw e-mail | index | archive | help
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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.GSO.4.10.10404261411400.19645-100000>