DragonFlyBSD Kernel Audit
DF-2630 / dstate_census.txt
← back to finding ↓ download raw
DF-2630 dstate_census.txt — unkillable D-state pile-up (stock kernel #0)
Guest: DragonFly dfbsd 6.5-DEVELOPMENT #0 (INVARIANTS), Sat Aug 29 00:46-00:56 UTC 2026
NOTE: reconstructed verbatim from the live verification session (the
guest-side files were lost to subsequent vm.sh resets); every line below
was captured by `ps axlw` / `ps -o pid,stat,wchan,command` during the run.

--- step 3 (+4s): first lookup wedges in VFS_ROOT ----------------------
    0    877    875  22 196   0   9056    912 h2root   S5     ??    0:00.00 ls /mnt/h2

--- step 6: kill -9 sent to subshells; orphaned children persist -------

--- +40min: orphaned lookups + umounts, all D-state --------------------
    0    877      1   3 177   0   9056    932 vfs_busy D5     ??    0:00.00 ls /mnt/h2
    0    884      1   9 183   0   9056    908 vfs_busy D2     ??    0:00.00 ls /mnt/h2
    0    894      1   4 178   0   4392    704 vfs_busy D1     ??    0:00.00 umount /mnt/h2
    0    900      1   0 174   0   4392    704 h2twait  D0     ??    0.00.04 umount -f /mnt/h2
    0    965    962  22 196   0   9056    908 vfs_busy D0     ??    0:00.00 ls /mnt/h2
    0    971    962  14 188   0   9056    912 vfs_busy D0     ??    0:00.00 ls /mnt/h2
    0    996    992  22 196   0   9056    904 vfs_busy D1     ??    0:00.01 ls /mnt/h2
    0    997    991  22 196   0   4140    664 vfs_busy D5     ??    0:00.00 stat /mnt/h2
(corrected line: pid 900 cpu time field reads 0:00.04)

All of the above survived `kill -9` (PCATCH breaks the h2root loop for
the FIRST process, but the vfs_busy waiters are in uninterruptible
loops and the mount accumulates leaked busy refs).  pids 877/884 were
still present 40+ minutes later, orphaned (ppid 1).

--- earlier accidental proof: bare `mount` listing also wedges --------
    0    940    930   0 174   0   6564    828 h2root   S2     ??    0:00.01 mount

--- shutdown serial (see shutdown_serial.log) --------------------------
Aug 29 00:56:27 dfbsd init: some processes would not die; ps axl advised
unmount of filesystem mounted from /dev/vn0@testvol failed (BUSY)
unmount(...): forced umount of "(null)" - 1 namecache refs, 7 mount refs