panic: Exit: Single threading fouled up

Daniel Eischen eischen at vigrid.com
Mon Apr 26 10:27:17 PDT 2004


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.
> 
> FreeBSD buffy.york.ac.uk 5.2-CURRENT FreeBSD 5.2-CURRENT #7: Tue Apr 13
> 19:45:13 BST 2004     root at buffy.york.ac.uk:/usr/obj/usr/src/sys/GENERIC
> i386
> 
> (the other machine - the idle one - is running a kernel from April 17th)
> 
> panic: Exit: Single threading fouled up
> at line 157 in file /usr/src/sys/kern/kern_exit.c
> cpuid = 0;
> Debugger("panic")
> Stopped at      Debugger+0x46:  xchgl   %ebx,in_Debugger.0
> db> trace
> Debugger(c07bfacf) at Debugger+0x46
> __panic(c07bd400,9d,c07bd45d,c302ac08,9) at __panic+0x13d
> exit1(c4005000,9,decaca10,c4005000,c2f0a000) at exit1+0x418
> sigexit(c4005000,9,c2f0aaa8,0,c07bfdc9) at sigexit+0xd7
> postsig(9) at postsig+0x171
> thread_export_context(c4005000,1,c2d00780,0,0) at
> thread_export_context+0x116
> thread_userret(c4005000,decacd48) at thread_userret+0x1b9
> userret(c4005000,decacd48,0,3,0) at userret+0x58
> syscall(83c002f,819002f,bfa6002f,81ff200,8) at syscall+0x2d9
> Xint0x80_syscall() at Xint0x80_syscall+0x1d
> --- syscall (32, FreeBSD ELF32, getsockname), eip = 0x2920cd8b, esp =
> 0xbfacdd74, ebp = 0xbfacdda0 ---
> db> sh locks
> exclusive sleep mutex process lock r = 0 (0xc302ac74) locked @
> /usr/src/sys/kern/kern_exit.c:134
> 
> 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?

-- 
Dan Eischen

Index: kern/kern_sig.c
===================================================================
RCS file: /opt/FreeBSD/cvs/src/sys/kern/kern_sig.c,v
retrieving revision 1.276
diff -u -r1.276 kern_sig.c
--- kern/kern_sig.c	12 Apr 2004 15:56:05 -0000	1.276
+++ kern/kern_sig.c	26 Apr 2004 20:22:20 -0000
@@ -2413,8 +2413,8 @@
 			    td->td_ucred ? td->td_ucred->cr_uid : -1,
 			    sig &~ WCOREFLAG,
 			    sig & WCOREFLAG ? " (core dumped)" : "");
-	} else
-		PROC_UNLOCK(p);
+	}
+	PROC_UNLOCK(p);
 	exit1(td, W_EXITCODE(0, sig));
 	/* NOTREACHED */
 }




More information about the freebsd-current mailing list