lang: en

FreeBSD lock order reversal (LOR) #261

ID 261
state cannot deadlock
responsible
reported first 2008-09-30
reported last 2009-01-22
do you know more? submit update by email
LOR
lock order reversal:
 1st 0xc2e03e00 bufwait (bufwait) @ sys/kern/vfs_bio.c:2443
 2nd 0xc3592200 dirhash (dirhash) @ sys/ufs/ufs/ufs_dirhash.c:254
		
KDB: stack backtrace:
db_trace_self_wrapper(c0bbad75,d633e778,c082ff55,4,c0bb671e,...) at db_trace_self_wrapper+0x26
kdb_backtrace(4,c0bb671e,c0bdb633,c307a250,d633e7d4,...) at kdb_backtrace+0x29
_witness_debugger(c0bbd62a,c3592200,c0bdb99a,c307a250,c0bdb633,...) at _witness_debugger+0x25
witness_checkorder(c3592200,9,c0bdb633,fe,0,...) at witness_checkorder+0x810
_sx_xlock(c3592200,0,c0bdb633,fe,c36fe618,...) at _sx_xlock+0x85
ufsdirhash_acquire(c2e03da0,d633e8ec,1b8,cfaf3e68,d633e8a4,...) at ufsdirhash_acquire+0x35
ufsdirhash_add(c36fe618,d633e8ec,e68,d633e890,d633e894,...) at ufsdirhash_add+0x13
ufs_direnter(c36faa78,c40ed53c,d633e8ec,d633ebd4,0,...) at ufs_direnter+0x729
ufs_makeinode(d633ebd4,d633eacc,d633eacc,d633ea34,c0b19225,...) at ufs_makeinode+0x519
ufs_create(d633eacc,d633eacc,0,d633eacc,d633eba8,...) at ufs_create+0x30
VOP_CREATE_APV(c0cb3c00,d633eacc,2,c0bb133d,3,...) at VOP_CREATE_APV+0xa5
vn_open_cred(d633eba8,d633ec5c,180,c349cb00,c33a5e70,...) at vn_open_cred+0x1d0
vn_open(d633eba8,d633ec5c,180,c33a5e70,1535e8,...) at vn_open+0x33
kern_openat(c3471d20,ffffff9c,826f5dc,0,603,...) at kern_openat+0x106
kern_open(c3471d20,826f5dc,0,602,180,...) at kern_open+0x35
open(c3471d20,d633ecf8,c,c0bbe1bd,c0c906f8,...) at open+0x30
syscall(d633ed38) at syscall+0x2a3
Xint0x80_syscall() at Xint0x80_syscall+0x20
--- syscall (5, FreeBSD ELF32, open), eip = 0x2823aef3, esp = 0x8202a60, ebp = 0x8202afc ---
		
KDB: stack backtrace:
db_trace_self_wrapper() at db_trace_self_wrapper+0x2a
_witness_debugger() at _witness_debugger+0x2e
witness_checkorder() at witness_checkorder+0x81e
_sx_xlock() at _sx_xlock+0x55
ufsdirhash_acquire() at ufsdirhash_acquire+0x33
ufsdirhash_add() at ufsdirhash_add+0x19
ufs_direnter() at ufs_direnter+0x889
ufs_makeinode() at ufs_makeinode+0x338
VOP_CREATE_APV() at VOP_CREATE_APV+0x8d
vn_open_cred() at vn_open_cred+0x479
kern_openat() at kern_openat+0x15e
syscall() at syscall+0x1bf
Xfast_syscall() at Xfast_syscall+0xab
--- syscall (5, FreeBSD ELF64, open), rip = 0x800a77c4c, rsp = 0x7fffffffe748, rbp = 0x1a4 ---
		
KDB: stack backtrace:
db_trace_self_wrapper(c07d2a15,daa7ca78,c057de85,4,c07ce2fe,...) at db_trace_self_wrapper+0x26
kdb_backtrace(4,c07ce2fe,c07ee685,c30f01e8,daa7cad0,...) at kdb_backtrace+0x29
_witness_debugger(c07d53e1,c38a0a00,c07ee9ec,c30f01e8,c07ee685,...) at _witness_debugger+0x25
witness_checkorder(c38a0a00,9,c07ee685,fe,0,...) at witness_checkorder+0x7ec
_sx_xlock(c38a0a00,0,c07ee685,fe,d0c5c018,...) at _sx_xlock+0x85
ufsdirhash_acquire(0,e,c31e0800,cffcd2e4,d0c5c018,...) at ufsdirhash_acquire+0x48
ufsdirhash_remove(c3930780,d0c5c018,18,daa7cb60,daa7cb5c,...) at ufsdirhash_remove+0x14
ufs_dirremove(c393e2b0,c39bb618,500800c,0,c393e2b0,...) at ufs_dirremove+0xe3
ufs_remove(daa7cc30,c07fed1f,0,daa7cc30,c39bd2b0,...) at ufs_remove+0x6e
VOP_REMOVE_APV(c08367e0,daa7cc30,2,c07d40b6,8116238,...) at VOP_REMOVE_APV+0xf6
kern_unlinkat(c36a3000,ffffff9c,8116238,0,daa7cc80,...) at kern_unlinkat+0x187
kern_unlink(c36a3000,8116238,0,daa7cd2c,c07939f3,...) at kern_unlink+0x27
unlink(c36a3000,daa7ccf8,4,c07e9923,c0815770,...) at unlink+0x22
syscall(daa7cd38) at syscall+0x2e3
Xint0x80_syscall() at Xint0x80_syscall+0x20
--- syscall (10, FreeBSD ELF32, unlink), eip = 0x2815e33f, esp = 0xbfbfeccc, ebp = 0xbfbfecf8 ---
		
KDB: stack backtrace:
X_db_sym_numargs(c024df5a,da151a84,c00f1115,4,c0249670,...) at X_db_sym_numargs+0x146
kdb_backtrace(4,c0249670,c2893f88,c2896070,da151ae0,...) at kdb_backtrace+0x29
witness_display_spinlock(c0250bd0,c2a90e00,c0262a60,c2896070,c02626f9,...) at witness_display_spinlock+0x75
witness_checkorder(c2a90e00,9,c02626f9,107,0,...) at witness_checkorder+0x839
_sx_xlock(c2a90e00,0,c02626f9,107,d01e9018,...) at _sx_xlock+0x85
ufsdirhash_enduseful(0,e,c2b90000,cf831100,d01e9018,...) at ufsdirhash_enduseful+0x2f5
ufsdirhash_remove(c2b7a348,d01e9018,18,da151b70,da151b6c,...) at ufsdirhash_remove+0x14
ufs_dirremove(c2b97d9c,c2b961e0,500800c,0,0,...) at ufs_dirremove+0xe5
ufs_readdir(da151c40,da151c40,0,da151c40,c2b95d9c,...) at ufs_readdir+0x39f
VOP_REMOVE_APV(c0297c00,da151c40,2,0,282191b8,...) at VOP_REMOVE_APV+0xa5
kern_unlinkat(c2b2d000,ffffff9c,282191b8,0,da151c90,...) at kern_unlinkat+0x187
kern_unlink(c2b2d000,282191b8,0,da151d3c,c02282b3,...) at kern_unlink+0x27
unlink(c2b2d000,da151d08,4,c0267928,c027fb50,...) at unlink+0x22
syscall(da151d48) at syscall+0x2a3
Xint0x80_syscall() at Xint0x80_syscall+0x22
--- syscall (10, FreeBSD ELF32, unlink), eip = 0x2815aedf, esp = 0xbf7fec1c, ebp = 0xbf7fec48 ---
		
KDB: stack backtrace:
db_trace_self_wrapper() at db_trace_self_wrapper+0x2a
_witness_debugger() at _witness_debugger+0x65
witness_checkorder() at witness_checkorder+0x859
_sx_xlock() at _sx_xlock+0x55
ufsdirhash_acquire() at ufsdirhash_acquire+0x33
ufsdirhash_remove() at ufsdirhash_remove+0x16
ufs_dirremove() at ufs_dirremove+0x181
ufs_remove() at ufs_remove+0x92
VOP_REMOVE_APV() at VOP_REMOVE_APV+0x93
kern_unlinkat() at kern_unlinkat+0x249
linux_unlinkat() at linux_unlinkat+0xa6
ia32_syscall() at ia32_syscall+0x1ab
Xint0x80_syscall() at Xint0x80_syscall+0x60
--- syscall (301, Linux ELF32, linux_unlinkat), rip = 0x28126968, rsp = 0xffffd4e8, rbp = 0xffffd508 ---
		
KDB: stack backtrace:
db_trace_self_wrapper(c0b98baf,e6238898,c0831475,4,c0b941ba,...) at db_trace_self_wrapper+0x26
kdb_backtrace(4,c0b941ba,c4520878,c4523e18,e62388f4,...) at kdb_backtrace+0x29
_witness_debugger(c0b9b869,c4c31e00,c0bbaf87,c4523e18,c0bbac2d,...) at _witness_debugger+0x25
witness_checkorder(c4c31e00,9,c0bbac24,107,0,...) at witness_checkorder+0x839
_sx_xlock(c4c31e00,0,c0bbac24,107,d90c9894,...) at _sx_xlock+0x85
ufsdirhash_acquire(0,e,c4a49000,d85180b0,d90c9894,...) at ufsdirhash_acquire+0x35
ufsdirhash_remove(c4f6f960,d90c9894,894,e6238984,e6238980,...) at ufsdirhash_remove+0x14
ufs_dirremove(c4f6e10c,c4f9d618,500940c,0,0,...) at ufs_dirremove+0xe5
ufs_rename(e6238c1c,e6238c1c,e6238bcc,e6238b7c,e6238bcc,...) at ufs_rename+0xbe3
VOP_RENAME_APV(c0c975c0,e6238c1c,101,0,5009410,...) at VOP_RENAME_APV+0xa5
kern_renameat(c4fb6000,ffffff9c,85c9664,ffffff9c,85c9680,...) at kern_renameat+0x2b7
kern_rename(c4fb6000,85c9664,85c9680,0,e6238d2c,...) at kern_rename+0x36
rename(c4fb6000,e6238cf8,8,c0b9c07a,c0c73400,...) at rename+0x29
syscall(e6238d38) at syscall+0x2a3
Xint0x80_syscall() at Xint0x80_syscall+0x20
--- syscall (128, FreeBSD ELF32, rename), eip = 0x2824ed0b, esp = 0xbfbfd8bc, ebp = 0xbfbfd8e8 ---
		
comments/references