DragonFlyBSD Kernel Audit
DF-2928 / panic.txt
← back to finding ↓ download raw
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".