{
  "finding_id": "DF-2631",
  "title": "umount -f of a same-clid multi-device hammer2 cluster hangs in hammer2_thr_wait (h2twait) on unmodified images",
  "verdict": "reproduced",
  "impact": "dos",
  "confidence": "certain",
  "reproduce": {
    "build": "no forging: trigger dd-copies one newfs_hammer2 -L testvol image three times (m1/m2/m3.img)",
    "run": "guest root: sh trigger_df2631.sh  (stock wedge; reboot to recover); sh fix_validate.sh  (fix kernel)",
    "expected": "stock: umount -f D-state h2twait forever (+3/+8/+63s); h2nod-testvol in h2coll; ~108 h2xop survivors (frozen + re-created mixed generations); third mount D-state mntlk; degraded shutdown; reboot only. fixed: UMOUNTF_RC=0 in ~61 s (defaults) / 11 s (knob 10), third mount works, single-device unaffected - but see VERDICT.md: a delayed pre-existing teardown UAF (Fatal trap 12, hammer2_primary_xops_thread+0x2d9) follows 1-5 min later on the fix kernel."
  },
  "kernel_refs": [
    "sys/vfs/hammer2/hammer2_admin.c:135",
    "sys/vfs/hammer2/hammer2_admin.c:491",
    "sys/vfs/hammer2/hammer2_admin.c:988",
    "sys/vfs/hammer2/hammer2_vfsops.c:772",
    "sys/vfs/hammer2/hammer2_vfsops.c:783",
    "sys/vfs/hammer2/hammer2_vfsops.c:1664",
    "sys/vfs/hammer2/hammer2_synchro.c:411",
    "sys/vfs/hammer2/hammer2_cluster.c:348"
  ],
  "fix_status": "inconclusive",
  "artifacts": [
    "README.md",
    "VERDICT.md",
    "trigger_df2631.sh",
    "fix_validate.sh",
    "build.sh",
    "run.sh",
    "run.log",
    "fix_run.log",
    "build.log",
    "shutdown_serial.log",
    "fix_iteration1_panic_serial.log",
    "fix_iteration2_panic_serial.log",
    "fix_iteration3_panic_serial.log",
    "env.txt",
    "fix.diff",
    "manifest.json",
    "verdict.json",
    "fix.combined.diff"
  ]
}