lang: en

FreeBSD lock order reversal (LOR) #229

ID 229
state unknown
responsible
reported first 2007-12-27
reported last 2009-01-12
do you know more? submit update by email
LOR
lock order reversal:
 1st 0xc58370d8 rtentry (rtentry) @ sys/net/route.c:196
 2nd 0xc538d07c radix node head (radix node head) @ sys/net/route.c:692
		
KDB: stack backtrace:
db_trace_self_wrapper(c0a9fc45,e5797a70,c078792e,c0aa2117,c538d07c,...) at db_trace_self_wrapper+0x26
kdb_backtrace(c0aa2117,c538d07c,c0aa2178,c0aa2178,c0aaaa4b,...) at kdb_backtrace+0x29
witness_checkorder(c538d07c,9,c0aaaa4b,2b4,c5214d58,...) at witness_checkorder+0x6de
_mtx_lock_flags(c538d07c,0,c0aaaa4b,2b4,c0a9bb4b,...) at _mtx_lock_flags+0xbc
rtrequest1(1,e5797b0c,e5797b3c,e5797b48,c08911ac,...) at rtrequest1+0x4f
rtredirect(e5797bbc,e5797bac,0,16,e5797b9c,...) at rtredirect+0x126
icmp_input(c5738000,14,246,c0b9aca0,e5797c0c,...) at icmp_input+0x50f
ip_input(c5738000,14e,800,c5250400,800,...) at ip_input+0x650
netisr_dispatch(2,c5738000,10,3,0,...) at netisr_dispatch+0x73
ether_demux(c5250400,c5738000,3,0,3,...) at ether_demux+0x1f1
ether_input(c5250400,c5738000,c0a6b43a,bc4,c5250400,...) at ether_input+0x37f
bge_intr(c526d000,0,c0a999ef,471,c515e564,...) at bge_intr+0x7da
ithread_loop(c5268640,e5797d38,c0a99763,2ea,c5263558,...) at ithread_loop+0x1b5
fork_exit(c07328a0,c5268640,e5797d38) at fork_exit+0xb8
fork_trampoline() at fork_trampoline+0x8
--- trap 0, eip = 0, esp = 0xe5797d70, ebp = 0 ---
		
lock order reversal:
 1st 0xc7077a14 rtentry (rtentry) @ sys/net/route.c:328
 2nd 0xc6eee07c radix node head (radix node head) @ sys/net/route.c:879
		
KDB: stack backtrace:
db_trace_self_wrapper(c0af8084,e71f5a4c,c07a777e,c0afa653,c6eee07c,...) at db_trace_self_wrapper+0x26
kdb_backtrace(c0afa653,c6eee07c,c0afa6b4,c0afa6b4,c0b031c2,...) at kdb_backtrace+0x29
witness_checkorder(c6eee07c,9,c0b031c2,36f,c6c5f2b8,...) at witness_checkorder+0x6de
_mtx_lock_flags(c6eee07c,0,c0b031c2,36f,c0af3ca5,...) at _mtx_lock_flags+0xbc
rtrequest1_fib(1,e71f5ae8,e71f5b18,0,ce,...) at rtrequest1_fib+0x82
rtredirect_fib(e71f5bb8,e71f5ba8,0,16,e71f5b98,...) at rtredirect_fib+0x13d
in_rtredirect(e71f5bb8,e71f5ba8,0,6,e71f5b98,...) at in_rtredirect+0x34
icmp_input(c7081d00,14,80246,c0bf53c0,e71f5c08,...) at icmp_input+0x526
ip_input(c7081d00,14e,800,c6c89400,800,...) at ip_input+0x650
netisr_dispatch(2,c7081d00,10,3,0,...) at netisr_dispatch+0x73
ether_demux(c6c89400,c7081d00,3,0,3,...) at ether_demux+0x1f1
ether_input(c6c89400,c7081d00,c0ac0c3e,c57,c6c89400,...) at ether_input+0x3d9
bge_intr(c6c90000,0,c0af18b8,442,c6b334e8,...) at bge_intr+0x7ca
ithread_loop(c6c946d0,e71f5d38,c0af1622,305,c6c97ad0,...) at ithread_loop+0x1c5
fork_exit(c074ce40,c6c946d0,e71f5d38) at fork_exit+0xb8
fork_trampoline() at fork_trampoline+0x8
--- trap 0, eip = 0, esp = 0xe71f5d70, ebp = 0 ---
		
lock order reversal:
 1st 0xffffff000c7f3550 rtentry (rtentry) @ sys/net/route.c:333
 2nd 0xffffff0004e82af8 radix node head (radix node head) @ sys/net/route.c:887
		
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
_mtx_lock_flags() at _mtx_lock_flags+0x78
rtrequest1_fib() at rtrequest1_fib+0x8f
rtredirect_fib() at rtredirect_fib+0x28e
icmp_input() at icmp_input+0x3b1
ip_input() at ip_input+0xc0
ether_demux() at ether_demux+0x1ed
ether_input() at ether_input+0x1d5
em_rxeof() at em_rxeof+0x200
em_handle_rxtx() at em_handle_rxtx+0x4b
taskqueue_run() at taskqueue_run+0x96
taskqueue_thread_loop() at taskqueue_thread_loop+0x55
fork_exit() at fork_exit+0x12a
fork_trampoline() at fork_trampoline+0xe
--- trap 0, rip = 0, rsp = 0xfffffffe400bcd40, rbp = 0 ---
		
comments/references