DF-2928 / panic.txt
DF-2928 panic signature
=======================
Panic (source-determined, sys/sys/indefinite2.h:185, always compiled):
panic("spin_lock_ex: sysctl_spin_lock_test, indefinite wait!")
Path: sysctl_spin_lock_test (kern_spinlock.c:417-425, value==1)
-> _spin_lock_quick (spinlock2.h:107) fetchadd; count=1 != 0
-> _spin_lock_contested (kern_spinlock.c:167), value=1
fetchadd(EXCLWAIT-1) at :206 => lock = 0x100001
transfer at :238-246 impossible (low bits == 1, held by ourselves)
-> indefinite_check loop :249-252 (spin_lock_test_mode set at :420 ignored)
-> secs reaches 60 => panic at indefinite2.h:183-186
Runtime confirmation (3/3 runs): guest died at exactly T0+60s; last observed
msgbuf line before death: "indefinite wait (57 secs)!"; no crash dump was
ever saved (panicking thread holds 2 spinlocks + crit section; DDB/dump path
wedged), so the panic string itself is source-verified rather than
dump-recovered. The pre-panic msgbuf progression is captured in run.log /
run.2.log.
Ident string note: ident is __func__ of the sysctl handler
("sysctl_spin_lock_test"), matching the msgbuf output and the INVARIANTS
11-second backtrace frame "sysctl_spin_lock_test() at
sysctl_spin_lock_test+0x233".