lang: en

FreeBSD lock order reversal (LOR) #231

ID 231
state unknown
responsible
reported first 2007-12-14
reported last 2008-10-12
do you know more? submit update by email
LOR
lock order reversal:
 1st 0xffffffff805bcf60 pf task mtx (pf task mtx) @ sys/contrib/pf/net/pf.c:6729
 2nd 0xffffff00031e1cf0 radix node head (radix node head) @ sys/net/route.c:147
		
KDB: stack backtrace:
db_trace_self_wrapper() at db_trace_self_wrapper+0x2a
witness_checkorder() at witness_checkorder+0x557
_mtx_lock_flags() at _mtx_lock_flags+0x2f
rtalloc1() at rtalloc1+0x62
rtalloc_ign() at rtalloc_ign+0xa3
pf_calc_mss() at pf_calc_mss+0x87
pf_test_tcp() at pf_test_tcp+0xd27
pf_test() at pf_test+0xcdb
pf_check_in() at pf_check_in+0x2b
pfil_run_hooks() at pfil_run_hooks+0xac
ip_input() at ip_input+0x2dd
ether_demux() at ether_demux+0x1b4
ether_input() at ether_input+0x1c8
re_rxeof() at re_rxeof+0x317
re_int_task() at re_int_task+0x1f8
taskqueue_run() at taskqueue_run+0x94
ithread_loop() at ithread_loop+0xe5
fork_exit() at fork_exit+0x110
fork_trampoline() at fork_trampoline+0xe
--- trap 0, rip = 0, rsp = 0xffffffffabc6bd30, rbp = 0 ---
		
lock order reversal:
 1st 0xc575c92c pf task mtx (pf task mtx) @ sys/modules/pf/../../contrib/pf/net/pf.c:6774
 2nd 0xc521777c radix node head (radix node head) @ sys/net/route.c:278
		
KDB: stack backtrace:
db_trace_self_wrapper(c0a2fa65,e557b890,c075f315,c0a30e10,c521777c,...) at db_trace_self_wrapper+0x26
kdb_backtrace(c0a30e10,c521777c,c0a31129,c0a31129,c0a374a0,...) at kdb_backtrace+0x29
witness_checkorder(c521777c,9,c0a374a0,116,c507d000,...) at witness_checkorder+0x5e5
_mtx_lock_flags(c521777c,0,c0a374a0,116,c5fe9a00,...) at _mtx_lock_flags+0x34
rtalloc1_fib(e557b998,1,100,0,e557b994,...) at rtalloc1_fib+0x76
rtalloc_ign_fib(e557b994,100,0,e557b9b4,c5734a38,...) at rtalloc_ign_fib+0xad
in_rtalloc_ign(e557b994,100,0,692a1600,5b47f56,...) at in_rtalloc_ign+0x1f
pf_calc_mss(c62a881c,2,5b4,2,e557bb4c,...) at pf_calc_mss+0x88
pf_test_tcp(e557bb68,e557bb64,1,c56e9400,c5fe9a00,...) at pf_test_tcp+0xdf6
pf_test(1,c507d000,e557bbc4,0,0,...) at pf_test+0x1028
pf_check_in(0,e557bbc4,c507d000,1,0,...) at pf_check_in+0x39
pfil_run_hooks(c0b79ec0,e557bc18,c507d000,1,0,...) at pfil_run_hooks+0x78
ip_input(c5fe9a00,14e,800,c507d000,800,...) at ip_input+0x265
netisr_dispatch(2,c5fe9a00,10,3,0,...) at netisr_dispatch+0x55
ether_demux(c507d000,c5fe9a00,3,0,3,...) at ether_demux+0x1c1
ether_input(c507d000,c5fe9a00,c0a0391b,c57,c507d000,...) at ether_input+0x323
bge_intr(c5084000,0,c0a2b122,4b6,c4ef84e8,...) at bge_intr+0x77a
ithread_loop(c50814f0,e557bd38,c0a2af4a,305,c508cad0,...) at ithread_loop+0x155
fork_exit(c07102d0,c50814f0,e557bd38) at fork_exit+0x94
fork_trampoline() at fork_trampoline+0x8
--- trap 0, eip = 0, esp = 0xe557bd70, ebp = 0 ---
		
lock order reversal:
 1st 0xffffffff805a62a0 pf task mtx (pf task mtx) @ sys/contrib/pf/net/pf.c:6773
 2nd 0xffffff00011e3cf0 radix node head (radix node head) @ sys/net/route.c:293
		
KDB: stack backtrace:
db_trace_self_wrapper() at db_trace_self_wrapper+0x2a
witness_checkorder() at witness_checkorder+0x565
_mtx_lock_flags() at _mtx_lock_flags+0x2f
rtalloc1_fib() at rtalloc1_fib+0x85
rtalloc_ign_fib() at rtalloc_ign_fib+0xaa
pf_calc_mss() at pf_calc_mss+0x89
pf_test_tcp() at pf_test_tcp+0xce2
pf_test() at pf_test+0xcdb
pf_check_in() at pf_check_in+0x2b
pfil_run_hooks() at pfil_run_hooks+0xac
ip_input() at ip_input+0x2dd
ether_demux() at ether_demux+0x1b4
ether_input() at ether_input+0x1c6
bge_intr() at bge_intr+0x3d0
ithread_loop() at ithread_loop+0xe9
fork_exit() at fork_exit+0x110
fork_trampoline() at fork_trampoline+0xe
--- trap 0, rip = 0, rsp = 0xffffffffa044dd30, rbp = 0 ---
		
comments/references