From owner-freebsd-fs@FreeBSD.ORG Mon Jan 24 15:10:13 2011 Return-Path: Delivered-To: freebsd-fs@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id CB760106564A for ; Mon, 24 Jan 2011 15:10:13 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id B754B8FC08 for ; Mon, 24 Jan 2011 15:10:13 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.4/8.14.4) with ESMTP id p0OFADau040004 for ; Mon, 24 Jan 2011 15:10:13 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.4/8.14.4/Submit) id p0OFADTv040002; Mon, 24 Jan 2011 15:10:13 GMT (envelope-from gnats) Date: Mon, 24 Jan 2011 15:10:13 GMT Message-Id: <201101241510.p0OFADTv040002@freefall.freebsd.org> To: freebsd-fs@FreeBSD.org From: Olivier Certner Cc: Subject: kern/136944: [ffs] [lor] bufwait/snaplk (fsync) X-BeenThere: freebsd-fs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Olivier Certner List-Id: Filesystems List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 24 Jan 2011 15:10:14 -0000 The following reply was made to PR kern/136944; it has been noted by GNATS. From: Olivier Certner To: bug-followup@freebsd.org Cc: Subject: kern/136944: [ffs] [lor] bufwait/snaplk (fsync) Date: Mon, 24 Jan 2011 16:07:54 +0100 Hi, A small mail to confirm that this problem is still present on 9.0-CURRENT-201101. Also, I reproduce other related LORs below. They can be triggered by performing a 'dump -L' on a UFS file system. The '-L' flag of 'dump' causes it to perform a snapshot of the file system to dump before reading data from it. lock order reversal: 1st 0xfffffe0019815bd8 ufs (ufs) @ /usr/src/sys/ufs/ffs/ffs_snapshot.c:423 2nd 0xffffff80f5db1f98 bufwait (bufwait) @ /usr/src/sys/kern/vfs_bio.c:2659 3rd 0xfffffe0003bc2db8 ufs (ufs) @ /usr/src/sys/ufs/ffs/ffs_snapshot.c:544 KDB: stack backtrace: db_trace_self_wrapper() at db_trace_self_wrapper+0x2a kdb_backtrace() at kdb_backtrace+0x37 _witness_debugger() at _witness_debugger+0x2e witness_checkorder() at witness_checkorder+0x807 __lockmgr_args() at __lockmgr_args+0xd42 ffs_lock() at ffs_lock+0x8c VOP_LOCK1_APV() at VOP_LOCK1_APV+0x9b _vn_lock() at _vn_lock+0x47 ffs_snapshot() at ffs_snapshot+0x1c16 ffs_mount() at ffs_mount+0x5eb vfs_donmount() at vfs_donmount+0xf6b nmount() at nmount+0x63 syscallenter() at syscallenter+0x1aa syscall() at syscall+0x4c Xfast_syscall() at Xfast_syscall+0xe2 --- syscall (378, FreeBSD ELF64, nmount), rip = 0x8006a015c, rsp = 0x7fffffffe3a8, rbp = 0x7fffffffedeb --- lock order reversal: 1st 0xffffff80f5c6af78 bufwait (bufwait) @ /usr/src/sys/kern/vfs_bio.c:2659 2nd 0xfffffe0003c37d30 snaplk (snaplk) @ /usr/src/sys/ufs/ffs/ffs_snapshot.c:2261 KDB: stack backtrace: db_trace_self_wrapper() at db_trace_self_wrapper+0x2a kdb_backtrace() at kdb_backtrace+0x37 _witness_debugger() at _witness_debugger+0x2e witness_checkorder() at witness_checkorder+0x807 __lockmgr_args() at __lockmgr_args+0xd42 ffs_copyonwrite() at ffs_copyonwrite+0x189 ffs_geom_strategy() at ffs_geom_strategy+0x1ba bufwrite() at bufwrite+0x10c ffs_update() at ffs_update+0x1a3 ffs_fsync() at ffs_fsync+0x43 fsync() at fsync+0x148 syscallenter() at syscallenter+0x1aa syscall() at syscall+0x4c Xfast_syscall() at Xfast_syscall+0xe2 --- syscall (95, FreeBSD ELF64, fsync), rip = 0x800856d5c, rsp = 0x7fffffffe128, rbp = 0x800c8c0d0 --- lock order reversal: 1st 0xfffffe0003c37d30 snaplk (snaplk) @ /usr/src/sys/kern/vfs_vnops.c:301 2nd 0xfffffe0019815bd8 ufs (ufs) @ /usr/src/sys/ufs/ffs/ffs_snapshot.c:1616 KDB: stack backtrace: db_trace_self_wrapper() at db_trace_self_wrapper+0x2a kdb_backtrace() at kdb_backtrace+0x37 _witness_debugger() at _witness_debugger+0x2e witness_checkorder() at witness_checkorder+0x807 __lockmgr_args() at __lockmgr_args+0xd42 ffs_snapremove() at ffs_snapremove+0xe7 ffs_truncate() at ffs_truncate+0x635 ufs_inactive() at ufs_inactive+0x243 vinactive() at vinactive+0x72 vputx() at vputx+0x386 vn_close() at vn_close+0x118 vn_closefile() at vn_closefile+0x5a _fdrop() at _fdrop+0x23 closef() at closef+0x5b fdfree() at fdfree+0x1b4 exit1() at exit1+0x2f5 sys_exit() at sys_exit+0xe syscallenter() at syscallenter+0x1aa syscall() at syscall+0x4c Xfast_syscall() at Xfast_syscall+0xe2 --- syscall (1, FreeBSD ELF64, sys_exit), rip = 0x8006f18cc, rsp = 0x7fffffffe1b8, rbp = 0x404ed0 --- Thanks, Olivier Certner