From nobody@FreeBSD.org  Sat Jan 16 10:14:19 2010
Return-Path: <nobody@FreeBSD.org>
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id D5B45106566C
	for <freebsd-gnats-submit@FreeBSD.org>; Sat, 16 Jan 2010 10:14:19 +0000 (UTC)
	(envelope-from nobody@FreeBSD.org)
Received: from www.freebsd.org (www.freebsd.org [IPv6:2001:4f8:fff6::21])
	by mx1.freebsd.org (Postfix) with ESMTP id C44D08FC0A
	for <freebsd-gnats-submit@FreeBSD.org>; Sat, 16 Jan 2010 10:14:19 +0000 (UTC)
Received: from www.freebsd.org (localhost [127.0.0.1])
	by www.freebsd.org (8.14.3/8.14.3) with ESMTP id o0GAEJ7r035089
	for <freebsd-gnats-submit@FreeBSD.org>; Sat, 16 Jan 2010 10:14:19 GMT
	(envelope-from nobody@www.freebsd.org)
Received: (from nobody@localhost)
	by www.freebsd.org (8.14.3/8.14.3/Submit) id o0GAEJFZ035088;
	Sat, 16 Jan 2010 10:14:19 GMT
	(envelope-from nobody)
Message-Id: <201001161014.o0GAEJFZ035088@www.freebsd.org>
Date: Sat, 16 Jan 2010 10:14:19 GMT
From: Dmitry <dmitry2006@yandex.ru>
To: freebsd-gnats-submit@FreeBSD.org
Subject: [zfs] [vfs] lock order reversal
X-Send-Pr-Version: www-3.1
X-GNATS-Notify:

>Number:         142878
>Category:       kern
>Synopsis:       [zfs] [vfs] lock order reversal
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    freebsd-fs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Sat Jan 16 10:20:03 UTC 2010
>Closed-Date:    
>Last-Modified:  Fri Jan 29 08:00:19 UTC 2010
>Originator:     Dmitry
>Release:        8.0-STABLE
>Organization:
>Environment:
FreeBSD *** 8.0-STABLE FreeBSD 8.0-STABLE #0: Sat Jan 16 14:27:24 YEKT 2010     root@***:/usr/obj/usr/src/sys/GENERIC_debug  amd64
>Description:
During boot, after find core dump, i see this message:

lock order reversal:
1st 0xffffff002630c578 zfs (zfs) @ /usr/src/sys/kern/vfs_mount.c:1058
2nd 0xffffff0026353578 devfs (devfs) @ /usr/src/sys/kern/vfs_subr.c:2091
KDB: stack backtrace:
db_trace_self_wrapper() at db_trace_self_wrapper+0x2a
_witness_debugger() at _witness_debugger+0x49
witness_checkorder() at witness_checkorder+0x7ea
__lockmgr_args() at __lockmgr_args+0xcd4
vop_stdlock() at vop_stdlock+0x39
VOP_LOCK1_APV() at VOP_LOCK1_APV+0x9b
_vn_lock() at _vn_lock+0x5d
vget() at vget+0x6c
devfs_allocv() at devfs_allocv+0xee
devfs_root() at devfs_root+0x41
vfs_donmount() at vfs_donmount+0xfa8
nmount() at nmount+0x74
syscall() at syscall+0x1cd
Xfast_syscall() at Xfast_syscall+0xe1
--- syscall (378, FreeBSD ELF64, nmount), rip = 0x8007d266c, rsp = 0x7fffffffdcb8, rbp = 0x7fffffffe250 ---

>How-To-Repeat:
make kernel with debug options and boot:

options KDB
options KDB_TRACE
options KDB_UNATTENDED
options DDB

options INVARIANTS
options INVARIANT_SUPPORT

options WITNESS

options DEBUG_LOCKS
options DEBUG_VFS_LOCKS
options DIAGNOSTIC

>Fix:


>Release-Note:
>Audit-Trail:
Responsible-Changed-From-To: freebsd-bugs->freebsd-fs 
Responsible-Changed-By: linimon 
Responsible-Changed-When: Sat Jan 16 12:36:43 UTC 2010 
Responsible-Changed-Why:  
Over to maintainer(s). 

http://www.freebsd.org/cgi/query-pr.cgi?pr=142878 

From: "Andrei V. Lavreniyuk" <andy.lavr@reactor-xg.kiev.ua>
To: bug-followup@FreeBSD.org, dmitry2006@yandex.ru
Cc:  
Subject: Re: kern/142878: [zfs] [vfs] lock order reversal
Date: Fri, 29 Jan 2010 09:56:53 +0200

 FreeBSD opensolaris.technica-03.local 8.0-STABLE FreeBSD 8.0-STABLE #0: 
 Fri Jan 29 06:12:47 UTC 2010 
 root@opensolaris.technica-03.local:/usr/obj/usr/src/sys/SMP64R  amd64
 
 
 
 
 lock order reversal:
 1st 0xffffff00093727f8 zfs (zfs) @ /usr/src/sys/kern/vfs_mount.c:1058
 2nd 0xffffff000933f7f8 devfs (devfs) @ /usr/src/sys/kern/vfs_subr.c:2091
 KDB: stack backtrace:
 db_trace_self_wrapper() at db_trace_self_wrapper+0x2a
 _witness_debugger() at _witness_debugger+0x2e
 witness_checkorder() at witness_checkorder+0x80b
 __lockmgr_args() at __lockmgr_args+0xcdd
 vop_stdlock() at vop_stdlock+0x39
 VOP_LOCK1_APV() at VOP_LOCK1_APV+0xbf
 _vn_lock() at _vn_lock+0x47
 vget() at vget+0x7b
 devfs_allocv() at devfs_allocv+0x100
 devfs_root() at devfs_root+0x48
 vfs_donmount() at vfs_donmount+0xfa1
 nmount() at nmount+0x63
 syscall() at syscall+0x1e6
 Xfast_syscall() at Xfast_syscall+0xe1
 --- syscall (378, FreeBSD ELF64, nmount), rip = 0x8007aa6bc, rsp = 
 0x7fffffffdd28, rbp = 0x800a06048 ---
 
 
 
 
 -- 
   Best regards, Andrei V. Lavreniyuk.
 
>Unformatted:
