panic: sleeping thread (pid 57200) owns a non-sleepable lock

From: Kris Kennaway <kris_at_obsecurity.org>
Date: Sat, 27 Nov 2004 14:56:38 -0800
Running -current with the latest version of kern_descrip.c that also
did not fix my previous sleep warnings and lock order reversals in
this code.

Kris

panic: sleeping thread (pid 57200) owns a non-sleepable lock
cpuid = 0
KDB: enter: panic
[thread pid 57199 tid 100405 ]
Stopped at      kdb_enter+0x32: leave
db> tr
Tracing pid 57199 tid 100405 td 0xc8a31780
kdb_enter(c06e45e8,0,c06e776a,f16dcb7c,c8a31780) at kdb_enter+0x32
panic(c06e776a,df70,c06e7658,a4,c8a31780) at panic+0x1b0
turnstile_wait(c0740a40,c578f480,c06e3a2c,21e,c0740a40) at turnstile_wait+0x574
_mtx_lock_sleep(c0740a40,c8a31780,0,c06e16af,670) at _mtx_lock_sleep+0xc2
_mtx_lock_flags(c0740a40,0,c06e16af,670,c06e7cdf) at _mtx_lock_flags+0xb0
fdfree(c8a31780,8,c06e1d54,e6,252) at fdfree+0x35c
exit1(c8a31780,4000,f16dcd40,c06a6fc8,c8a31780) at exit1+0x32a
sys_exit(c8a31780,f16dcd14,4,0,1) at sys_exit+0x1d
syscall(2f,2f,2f,bfbfe584,4) at syscall+0x13b
Xint0x80_syscall() at Xint0x80_syscall+0x1f
--- syscall (1, FreeBSD ELF32, sys_exit), eip = 0x280bf373, esp = 0xbfbfe4bc, ebp = 0xbfbfe4d8 ---

[Hmm, that's not process 57200..]

db> tr 57200
Tracing pid 57200 tid 100163 td 0xc578f480
sched_switch(c578f480,0,1,11e,c35984d3) at sched_switch+0xef
mi_switch(1,0,c06e70b7,1ab,1) at mi_switch+0x1c2
sleepq_switch(c06e3a2c,18e,1,1,eecbdc50) at sleepq_switch+0x10a
sleepq_wait(c5d3b24c,0,c06e4d0f,da,0) at sleepq_wait+0x1a
msleep(c5d3b24c,c5d3b228,64,c06e0dc6,0) at msleep+0x4e4
checkdirs(c5853000,eecbdca4,c578f480,c578f480,0) at checkdirs+0xe0
dounmount(c5853000,8080000,c578f480,43a,611ffa4) at dounmount+0x3fa
unmount(c578f480,eecbdd14,8,3ff,2) at unmount+0x1f4
syscall(2f,2f,2f,804a618,bfbfe749) at syscall+0x13b
Xint0x80_syscall() at Xint0x80_syscall+0x1f
--- syscall (22, FreeBSD ELF32, unmount), eip = 0x280c5a63, esp = 0xbfbfe4dc, ebp = 0xbfbfe598 ---

db> show locks
exclusive sleep mutex Giant r = 0 (0xc07412e0) locked _at_ kern/vfs_vnops.c:882
db> show pcpu
cpuid        = 0
curthread    = 0xc8a31780: pid 57199 "mkdir"
curpcb       = 0xf16dcda0
fpcurthread  = none
idlethread   = 0xc563f780: pid 12 "idle: cpu0"
APIC ID      = 0
currentldt   = 0x30
spin locks held:

Received on Sat Nov 27 2004 - 21:52:00 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:23 UTC