panic: mutex accept not owned at /usr/src/sys/kern/uipc_socket.c:493

Robert Watson rwatson at freebsd.org
Tue Nov 2 09:01:16 PST 2004


On Tue, 2 Nov 2004, Dikshie wrote:

> dear all, cvsup-ed yesterday (WIT/West Indonesia Time) I got my
> FreeBSD-5.3-STABLE box panic:  herewith the message: 

It looks like there's a missing call to ACCEPT_LOCK() in
uipc_socket.c:soabort().  It should appear before the call to SOCK_LOCK().
Could you try the attached patch?

Robert N M Watson             FreeBSD Core Team, TrustedBSD Projects
robert at fledge.watson.org      Principal Research Scientist, McAfee Research

Index: uipc_socket.c
===================================================================
RCS file: /home/ncvs/src/sys/kern/uipc_socket.c,v
retrieving revision 1.215
diff -u -r1.215 uipc_socket.c
--- uipc_socket.c	23 Oct 2004 19:06:43 -0000	1.215
+++ uipc_socket.c	2 Nov 2004 16:57:58 -0000
@@ -490,6 +490,7 @@
 
 	error = (*so->so_proto->pr_usrreqs->pru_abort)(so);
 	if (error) {
+		ACCEPT_LOCK();
 		SOCK_LOCK(so);
 		sotryfree(so);	/* note: does not decrement the ref count */
 		return error;



> 
> panic: mutex accept not owned at /usr/src/sys/kern/uipc_socket.c:493
> KDB: stack backtrace:
> kdb_backtrace(100,c2807af0,c070cd20,1ed,c06abc86) at 0xc0521c5d = kdb_backtrace+0x29
> panic(c06a6b16,c06b3fcd,c06abc86,1ed,c1e92578) at 0xc050bc58 = panic+0xa8
> _mtx_assert(c070cb20,1,c06abc86,1ed,c1e92578,0,c06abc86,1ec) at 0xc0504424 = _mtx_assert+0x5c
> soabort(c1e92510,c070cb20,0,c06abc86,1b5) at 0xc053e9f7 = soabort+0x4f
> soclose(c29743cc,c1d4fcc0,0,da15fb98,c04f14d0) at 0xc053e80c = soclose+0x120
> soo_close(c1d4fcc0,c2807af0) at 0xc053066f = soo_close+0x4b
> fdrop_locked(c1d4fcc0,c2807af0,c1965664,0,c06a4247) at 0xc04f14d0 = fdrop_locked+0x84
> fdrop(c1d4fcc0,c2807af0,c072f520,8c0,c06bccd6) at 0x04f0720 = fdrop+0x24
> closef(c1d4fcc0,c2807af0) at 0xc04f06f3 = closef+0x1db
> fdfree(c2807af0,c42e89e8,c06a4247,826,c1e7d044) at 0xc04f004f = fdfree+0x2ff
> exit1(c2807af0,0,da15fd40,c066a9bb,c2807af0) at 0xc04f70ca = exit1+0x3e6
> exit1(c2807af0,da15fd14,1,0,292) at 0xc04f6ce4 = exit1
> syscall(2f,2f,2f,1,8069100) at 0xc066a9bb = syscall+0x213
> Xint0x80_syscall() at 0xc065afaf = Xint0x80_syscall+0x1f
> --- syscall (1, FreeBSD ELF32, sys_exit), eip = 0x28129373, esp = 0xbfbfe34c, ebp = 0xbfbfe368 ---
> 
> 
> 
> 
> 
> 
> any solutions ?
> 
> 
> thanks !
> 
> 
> -dikshie-
> _______________________________________________
> freebsd-current at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-current
> To unsubscribe, send any mail to "freebsd-current-unsubscribe at freebsd.org"
> 



More information about the freebsd-current mailing list