โฌข DragonFlyBSD Kernel Audit
DF-2918 / run.log
โ† back to finding โ†“ download raw
Run 1 (2026-09-03 09:58 UTC) โ€” race, 6 mounters (root, ext2fs then fuse), kldloop no gap
========================================================================================
NOTE: first two race.sh invocations used stale binaries (tmpfs/ext2fs versions)
and established: (a) tmpfs.ko/null.ko/procfs.ko are built into the kernel
(kldload -> "interface tmpfs.1 already present in the KLD 'kernel'!" /
ENOEXEC), (b) fuse.ko is the only user-cap-relevant loadable fs module.

Run 2 (2026-09-03 10:00 UTC) โ€” race, 6 root mounters (fuse), 2 poc sysctl readers
(vfs.generic.0 โ€” oid wrong, readers idle), kldloop no gap, 300 s budget
========================================================================================
Result: HARD WEDGE at ~60-90 s. All 6 mounters D-state:

  root  1367 D5  ncplk     /root/mountloop /home/poc/mnt fuse
  root  1368 D0  ncplk     /root/mountloop /home/poc/mnt fuse
  root  1369 D2  ncplk     /root/mountloop /home/poc/mnt fuse
  root  1370 D0  ncplk     /root/mountloop /home/poc/mnt fuse
  root  1371 D0  ncplk     /root/mountloop /home/poc/mnt fuse
  root  1372 D0  ncplk     /root/mountloop /home/poc/mnt fuse
  root  1375 R1  -         /root/kldloop            (spinning on failed loads)

fuse.ko pinned loaded (id 4), kldload storm:
  dmesg: interface fuse.1 already present in the KLD 'fuse'! (x2800+)
fuse was loaded mid-race by a mounter's sys_mount autoload path:
  dmesg: fuse_init(mountloop|1367): FUSE ABI 7.28
Guest could not be shut down; vm.sh reset had to hard-kill QEMU.

Run 3 (2026-09-03 10:10 UTC) โ€” CONTROL: 4 mounters (fuse loaded by hand,
no kldunload churn), 90 s
========================================================================================
Result: CLEAN. mloop.0: pid=897 iter=0..600000 ok=0 fail=600001 (~7k
mount(2)/s per mounter), all processes exited cleanly at kill, guest
healthy. => the mount loop by itself is harmless.

Run 4 (2026-09-03 10:09:58 UTC) โ€” RACE: 16 mounters + kldloop (no gap), 600 s
========================================================================================
Result: HARD WEDGE in ~4 min, identical shape (ncplk/syncexit/vnode
D-states, kldloop D, fuse pinned). Wedge survived until forced reset.
Witness ps (excerpt):
  976 D5 ncplk    /root/mountloop ...
  977 D5 syncexit /root/mountloop ...
  983 D5 vnode    /root/mountloop ...
  994 D3 -        /root/kldloop
  sysctlloop (poc) kept running: 84,000,000+ successful vfs.generic
  enumerations (R state) โ€” the list itself remained traversable; the
  wedge owns the mount/linker path.
`ls /` and normal path lookups still worked (wedge scoped to
mount/linker subsystem); wedged threads ignored SIGKILL.

Run 5 (2026-09-03 10:18 UTC) โ€” RACE: 3 mounters + kldloop GAP=10000, 600 s
========================================================================================
Result: HARD WEDGE in ~15 s (fastest yet โ€” fewer threads, same outcome):
  889 D5 vnode    0:06.01 /root/mountloop /home/poc/mnt fuse
  890 D5 -        0:06.48 /root/mountloop /home/poc/mnt fuse
  902 D4 ncplk    0:06.28 /root/mountloop /home/poc/mnt fuse
  905 D4 -        0:07.50 /root/kldloop 10000
  fuse.ko pinned (id 4). mloop.0 had reached iter=200000 before wedging
  (healthy fast loop, then the fatal interleave).

Run 6 (2026-09-03 10:26 UTC) โ€” second concurrent race GAP=50000 on the
still-wedged guest: new mounter 1016 wedged (wchan syncexit) within ~10 s;
old wedged threads (889/890) still present and unkillable.

Panic capture (same session):
  sysctl -w kern.sync_on_panic=1; debug.trace_on_panic=1;
  debug.debugger_on_panic=0; sysctl -w debug.panic=1
  => serial console (dfbsd-qemu/boot.log):
     panic: sysctl_debug_panic
     cpuid = 2
     Trace beginning at frame 0xfffff80118787778
     stack_guard_panic2() at stack_guard_panic2 0xffffffff802cd040
     sysctl_root.isra.5() at sysctl_root.isra.5+0x166
     userland_sysctl() at userland_sysctl+0x111
     sys___sysctl() at sys___sysctl+0x74
     syscall2() at syscall2+0x11e
     boot() called on cpu#2
     syncing disks...            <<< HANGS HERE โ€” crash-dump sync wedges on
                                  the same corrupted VFS state; guest died
                                  mid-sync and never produced a vmcore.
(kill -9 1 does NOT panic a DFly guest โ€” init is signal-protected.)