DF-2630 / manifest.json
{ "finding_id": "DF-2630", "title": "hammer2 VFS_ROOT quorum wedge: pfs_nmasters > nchains pins mount forever, unkillable D-state pile-up", "verdict": "reproduced", "impact": "dos", "confidence": "certain", "reproduce": { "build": "python3 forge_df2630.py base.img wedge wedge.img && python3 forge_df2630.py base.img control control.img (base.img = guest newfs_hammer2 -L testvol on a 64M truncate)", "run": "guest root: sh trigger_df2630.sh (stock wedge; reboot to recover); sh control_df2630.sh (causality); sh fix_validate.sh (fix kernel)", "expected": "stock: mount RC=0; ls wedges wchan h2root; later lookups+umount unkillable D-state vfs_busy (kill -9 immune, 40+ min); umount -f D-state h2twait; degraded shutdown; reboot only. fixed: ls -> EIO after vfs.hammer2.root_timeout (5 s demo), sticky instant retry, umount -f RC=0 removes the mount, zero waiters, system healthy." }, "kernel_refs": [ "sys/vfs/hammer2/hammer2_vfsops.c:527", "sys/vfs/hammer2/hammer2_vfsops.c:1966", "sys/vfs/hammer2/hammer2_cluster.c:348", "sys/kern/vfs_nlookup.c:1053", "sys/kern/vfs_cache.c:4504", "sys/kern/vfs_syscalls.c:635" ], "fix_status": "fixed", "artifacts": [ "README.md", "VERDICT.md", "forge_df2630.py", "trigger_df2630.sh", "control_df2630.sh", "fix_validate.sh", "build.sh", "run.sh", "run.log", "dstate_census.txt", "shutdown_serial.log", "fix_run.log", "build.log", "env.txt", "fix.diff", "manifest.json", "verdict.json", "fix.combined.diff" ] } |