DF-2630 / dstate_census.txt
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