DF-2657 / manifest.json
{ "finding_id": "DF-2657", "title": "hammer2 sync-thread xop quorum counts the excluded node: h2nod collects can never reach quorum (DF-2631 wedge family root cause)", "verdict": "reproduced", "impact": "dos", "severity": "Medium", "bucket": "hammer2", "confidence": "certain", "reproduce": { "build": "none (unmodified images): dd-clone pair of one newfs_hammer2 -L testvol image; fix kernel: cd /usr/src && patch -p1 < fix.diff && make nativekernel && make installkernel", "run": "sh trigger_df2657.sh (stock: wedge) ; sh fix_validate.sh (kernel #1: clean)", "expected": "stock: 4x h2nod in h2coll pre-umount, umount -f D4 h2twait ~65s then rc=1 with threads stranded forever, third mount D3 mntlk. fixed: h2idle parks, umount -f RC=0 in 0s, third mount instant, single-device sanity OK" }, "kernel_refs": [ "sys/vfs/hammer2/hammer2_synchro.c:411", "sys/vfs/hammer2/hammer2_synchro.c:454", "sys/vfs/hammer2/hammer2_synchro.c:672", "sys/vfs/hammer2/hammer2_synchro.c:421", "sys/vfs/hammer2/hammer2_cluster.c:348", "sys/vfs/hammer2/hammer2_cluster.c:462", "sys/vfs/hammer2/hammer2_cluster.c:522", "sys/vfs/hammer2/hammer2_admin.c:479", "sys/vfs/hammer2/hammer2_admin.c:988", "sys/vfs/hammer2/hammer2_admin.c:996" ], "fix": { "fix_status": "fixed", "fix_kernel_uname": "DragonFly dfbsd 6.5-DEVELOPMENT #1: Sun Aug 30 04:30:11 UTC 2026", "fix_baseline_reproduced": 1, "fix_patched_reproduced": 0, "fix_verdict": "wedge eliminated (A_H2COLL_COUNT=0 vs 4; umount -f 0s/RC=0 vs 65s/rc=1; mntlk released; 6/6 single-device control clean; diverged rw cluster no-regression + clean teardown). Residual: pre-existing DF-2620-family UAF exposed by any completed cluster teardown (4x +0x2d9 traps, control clean, identical site to DF-2631's builds) - separate defect, documented.", "fix_evidence": "findings/poc/DF-2657/fix_run.log, fix_build.log.tgz, panic_serial.log" }, "artifacts": [ "README.md", "VERDICT.md", "run.log", "fix_run.log", "fix_run.truncated.log", "trigger_df2657.sh", "fix_validate.sh", "fix.diff", "fix2657.diff", "fix_build.log.tgz", "panic_serial.log", "code_hashes.txt", "guest_fix_artifacts.tgz", "verdict.json", "manifest.json" ] } |