Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 24 Sep 2001 12:33:45 -0700 (PDT)
From:      John Baldwin <jhb@FreeBSD.org>
To:        Munehiro Matsuda <haro@h4.dion.ne.jp>
Cc:        freebsd-current@FreeBSD.org
Subject:   Re: Panic with "recursed on non-recursive lock"
Message-ID:  <XFMail.010924123345.jhb@FreeBSD.org>
In-Reply-To: <20010924012530D.haro@h4.dion.ne.jp>

next in thread | previous in thread | raw e-mail | index | archive | help

On 23-Sep-01 Munehiro Matsuda wrote:
> Hi all,
> 
> Here's another one from src-cur.4972.gz. It's repeatable.
> -------------------------------------------------------------------
># ps -ae
> lock order reversal
>  1st 0xc7fe4d08 process lock @ ../../../kern/kern_proc.c:215
>  2nd 0xc03e6620 Giant @ ../../../kern/subr_trap.c:98
> exclusive (sleep mutex) process lock (0xc7fe4d08) locked @
> ../../../kern/kern_proc.c:215
> panic: system call open returning with mutex(s) held

Something is not unlocking the process after pfind().  A trace here at the
point of the reversal might help.  Please turn on WITNESS_DDB.

> Debugger("panic")
> Stopped at    Debugger+0x44: pushl    %ebx
> db> t
> Debugger(c0322ffb) at Debugger+0x44
> panic(c0345de0,c0327489,bfbfe574,10,bfbffff0) at panic+0x70
> syscall(2f,2f,2f,bfbffff0,10) at syscall+0x602
> syscall_with_err_pushed() at syscall_with_err_pushed+0x1b
> --- syscall (1, FreeBSD ELF, sys_exit), eip = 0x804f404, esp = 0xbfbfe538,
> ebp = 0xbfbe974 ---
> db>
> -------------------------------------------------------------------
> 
> Also, newest kernel (from src-cur.4973.gz) panics on boot.
> -------------------------------------------------------------------
> Mounting root from ufs:/dev/ad0s2a
> panic: lock (sleep mutex) vnode interlock not locked @
> ../../../kern/vfs_default.c:460
> Debugger("panic")
> Stopped at    Debugger+0x44: pushl    %ebx
> db> t
> Debugger(c0321e3b) at Debugger+0x44
> panic(c0324e00,c0320e60,c0328ffc,c0328990,1cc) at panic+0x70
> witness_unlock(c85e3f2c,8,c0328980,1cc,c85e3f2c,1,c0320e77,f6) at
> witness_unlock+0x1d0
> _mtx_unlock_flags(c85e3f2c,0,c0328980,1cc,c04d0bd0) at _mtx_unlock_flags+0x59
> vop_nolock(c04d0be8,c04d0bf8,c021fd56,c04d0be8,c04d0d4c) at vop_nolock+0x24
> vop_defaultop(c04d0be8) at vop_defaultop+0x15
> vn_lock(c85e3ec0,20002,c03e01e4,c04d0d4c,c1405780) at vn_lock+0xca
> ffs_mountfs(c85e3ec0,c1406200,c03e01e4,c0388140,c04d0d4c) at ffs_mountfs+0x7e
> ffs_mount(c1406200,0,0,0,c03e01e4) at ffs_mount+0x67
> vfs_mountroot_try(c04ad52d,c032858c) at vfs_mountroot_try+0x14e
> vfs_mountroot(0,4cdc00,4cd000,0,c012881c) at vfs_mountroot+0x5a
> mi_startup() at mi_startup+0x90
> begin() at begin+0x43
> db>
> -------------------------------------------------------------------

Ugh, not sure what is causing this.

-- 

John Baldwin <jhb@FreeBSD.org> -- http://www.FreeBSD.org/~jhb/
PGP Key: http://www.baldwin.cx/~john/pgpkey.asc
"Power Users Use the Power to Serve!"  -  http://www.FreeBSD.org/

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?XFMail.010924123345.jhb>