lang: en

FreeBSD lock order reversal (LOR) #193

ID 193
state unknown
responsible kib
reported first 2006-11-26
reported last 2008-02-12
do you know more? submit update by email
LOR
lock order reversal:
 1st 0xc537f300 kqueue (kqueue) @ sys/kern/kern_event.c:1547
 2nd 0xc45c22dc struct mount mtx (struct mount mtx) @ sys/ufs/ufs/ufs_vnops.c:138
		
KDB: stack backtrace:
kdb_backtrace(c07f9879,c45c22dc,c07fd31c,c07fd31c,c080c7b2,...) at kdb_backtrace+0x2f
witness_checkorder(c45c22dc,9,c080c7b2,8a,c07fc6bd,...) at witness_checkorder+0x5fe
_mtx_lock_flags(c45c22dc,0,c080c7b2,8a,e790ba20,...) at _mtx_lock_flags+0x32
ufs_itimes(c47a0dd0,c47a0e90,e790ba78,c060e1cc,c47a0dd0,...) at ufs_itimes+0x6c
ufs_getattr(e790ba54,e790baec,c0622af6,c0896f40,e790ba54,...) at ufs_getattr+0x20
VOP_GETATTR_APV(c0896f40,e790ba54,c08a5760,c47a0dd0,e790ba74,...) at VOP_GETATTR_APV+0x3a
filt_vfsread(c4cf261c,6,c07f445e,60b,0,...) at filt_vfsread+0x75
knote(c4f57114,6,1,1f30c2af,1f30c2af,...) at knote+0x75
VOP_WRITE_APV(c0896f40,e790bbec,c47a0dd0,227,e790bcb4,...) at VOP_WRITE_APV+0x148
vn_write(c45d5120,e790bcb4,c5802a00,0,c4b73a80,...) at vn_write+0x201
dofilewrite(c4b73a80,1b,c45d5120,e790bcb4,ffffffff,...) at dofilewrite+0x84
kern_writev(c4b73a80,1b,e790bcb4,8220c71,0,...) at kern_writev+0x65
write(c4b73a80,e790bd04,c,c07d899c,3,...) at write+0x4f
syscall(3b,3b,bfbf003b,0,bfbfeae4,...) at syscall+0x295
Xint0x80_syscall() at Xint0x80_syscall+0x1f
--- syscall (4, FreeBSD ELF32, write), eip = 0x2831d727, esp = 0xbfbfea1c, ebp = 0xbfbfea48 ---
		

		

		
lock order reversal:
 1st 0xc6876c00 kqueue (kqueue) @ sys/kern/kern_event.c:1547
 2nd 0xc676b574 struct mount mtx (struct mount mtx) @ sys/ufs/ufs/ufs_vnops.c:138
		
KDB: stack backtrace:
witness_checkorder(c676b574,9,c069cb35,8a) at witness_checkorder+0x55c
_mtx_lock_flags(c676b574,0,c069cb35,8a,0,...) at _mtx_lock_flags+0x41
ufs_itimes(c687e110,c687e110,e8e8fa00,c69c7990,c69f6030,...) at ufs_itimes+0x38
ufs_getattr(e8e8fa00,c687e110,e8e8fa98,c055e93e,c06d5700,...) at ufs_getattr+0x1c
VOP_GETATTR_APV(c06d5700,e8e8fa00,c06e45a0,c687e110,e8e8fa20,...) at VOP_GETATTR_APV+0x56
filt_vfsread(c69c7990,8,1,8,0,...) at filt_vfsread+0x5e
knote(c69f6030,8,1) at knote+0xcf
vop_setattr_post(e8e8faf8,0,e8e8fb18,c687e110,e8e8fb94,...) at vop_setattr_post+0x3b
VOP_SETATTR_APV(c06d5700,e8e8faf8,c06e4560,c687e110,e8e8fb18,...) at VOP_SETATTR_APV+0x61
vfs_mark_atime(c687e110,c689b900,0,2,1,...) at vfs_mark_atime+0x76
vm_mmap(c68994a0,e8e8fcc8,1000,1,5,1,2,c687e110,0,0) at vm_mmap+0x4ba
mmap(c689b900,e8e8fd04,8,4,282,...) at mmap+0x163
syscall(283e003b,283e003b,bfbf003b,8115a80,76,...) at syscall+0x125
Xint0x80_syscall() at Xint0x80_syscall+0x1f
--- syscall (198, FreeBSD ELF32, nosys), eip = 0x283d9ecf, esp = 0xbfbfe3ac, ebp = 0xbfbfe3e8 ---
		

		

		
lock order reversal:
 1st 0xc7d02d00 kqueue (kqueue) @ sys/kern/kern_event.c:1547
 2nd 0xc676b574 struct mount mtx (struct mount mtx) @ sys/ufs/ufs/ufs_vnops.c:138
		
KDB: stack backtrace:
witness_checkorder(c676b574,9,c069cb35,8a) at witness_checkorder+0x55c
_mtx_lock_flags(c676b574,0,c069cb35,8a,0,...) at _mtx_lock_flags+0x41
ufs_itimes(c6868dd0,c6868dd0,e8e2aa6c,c69fae9c,c69f5e24,...) at ufs_itimes+0x38
ufs_getattr(e8e2aa6c,c6868dd0,e8e2ab04,c055e93e,c06d5700,...) at ufs_getattr+0x1c
VOP_GETATTR_APV(c06d5700,e8e2aa6c,c06e45a0,c6868dd0,e8e2aa8c,...) at VOP_GETATTR_APV+0x56
filt_vfsread(c69fae9c,6,1,6,0,...) at filt_vfsread+0x5e
knote(c69f5e24,6,1) at knote+0xcf
VOP_WRITE_APV(c06d5700) at VOP_WRITE_APV+0x14c
vn_write(c667b048,c7cb6b80,c634e780,0,c6692180) at vn_write+0x1b0
dofilewrite(c667b048,c7cb6b80,ffffffff,ffffffff,0,...) at dofilewrite+0x69
kern_writev(c6692180,9,c7cb6b80,c7cb6b80,0,...) at kern_writev+0x3b
writev(c6692180,e8e2ad04,3,2,246,...) at writev+0x39
syscall(805003b,3b,bfbf003b,0,bfbfd030,...) at syscall+0x125
Xint0x80_syscall() at Xint0x80_syscall+0x1f
--- syscall (121, FreeBSD ELF32, writev), eip = 0x2816939f, esp = 0xbfbfc90c, ebp = 0xbfbfd058 ---
		

		

		
lock order reversal:
 1st 0xc9860c00 kqueue (kqueue) @ sys/kern/kern_event.c:1547
 2nd 0xcaecbae4 vnode interlock (vnodeinterlock) @ sys/ufs/ufs/ufs_vnops.c:132
		
KDB: stack backtrace:
kdb_backtrace(0,ffffffff,c065db00,c065f810,c060ca20,...) at 0xc04aed29 = kdb_backtrace+0x29
witness_checkorder(caecbae4,9,c05eefbe,84) at 0xc04ba1f8 = witness_checkorder+0x578
_mtx_lock_flags(caecbae4,0,c05eefbe,84,554,...) at 0xc048dc78 = _mtx_lock_flags+0x78
ufs_itimes(caecba68,caecba68,e9d93a88,c6cefb28,cc1b2048,...) at 0xc0564fa0 = ufs_itimes+0x24
ufs_getattr(e9d93a88) at 0xc05654ce = ufs_getattr+0x1e
VOP_GETATTR_APV(c061c1e0,e9d93a88) at 0xc05c61c2 = VOP_GETATTR_APV+0x7e
filt_vfsread(c6cefb28,6) at 0xc04ec303 = filt_vfsread+0x6b
knote(cc1b2048,6,1) at 0xc047abd0 = knote+0x98
VOP_WRITE_APV(c061c1e0,e9d93c10) at 0xc05c64ca = VOP_WRITE_APV+0x186
vn_write(c678c828,cc0c3b80,c8cb3700,0,c757e480) at 0xc04f5ffa = vn_write+0x202
dofilewrite(c757e480,a,c678c828,cc0c3b80,ffffffff,...) at 0xc04bbc28 = dofilewrite+0x7c
kern_writev(c757e480,a,cc0c3b80,cc0c3b80,0,...) at 0xc04bbac7 = kern_writev+0x3b
writev(c757e480,e9d93d04) at 0xc04bba70 = writev+0x30
syscall(bfbf003b,bfbf003b,bfbf003b,0,bfbfce40,...) at 0xc05bd647 = syscall+0x273
Xint0x80_syscall()at0xc05a980f=Xint0x80_syscall+0x1f
---syscall(121,FreeBSDELF32,writev),eip = 0x28137bd7,esp = 0xbfbfc75c,ebp = 0xbfbfce68---
		
comments/references