kern/136944: [ffs] [lor] bufwait/snaplk (fsync)
Olivier Certner
olivier.freebsd at free.fr
Mon Jan 24 15:10:14 UTC 2011
The following reply was made to PR kern/136944; it has been noted by GNATS.
From: Olivier Certner <olivier.freebsd at free.fr>
To: bug-followup at 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
More information about the freebsd-fs
mailing list