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