{
  "verdict": "reproduced",
  "impact": "dos",
  "confidence": "certain",
  "reproduce": {
    "build": "dfbsd-qemu/vm.sh reset with-src; scp -r sys/libprop + dm_abba.c guest_duel.sh into guest; kldload dm dm_target_linear; cc -O2 -Wall -I/tmp/propinc -o dm_abba dm_abba.c -lprop -lpthread",
    "run": "nohup /tmp/guest_duel.sh 90 (duel mode: P1 hammers reload of a table stacked on /dev/mapper/pbase, P2 hammers remove of the stacked device); watch dfbsd-qemu/vm.sh log",
    "expected": "both dm_abba workers freeze in D state on complementary locks (wchan dmdevlis = dm_dev_mutex, dm_dev = dmv->dev_mtx); dmsetup canaries wedge behind dm_dev_mutex; every dm ioctl hangs; 42 consecutive frozen ps snapshots captured in run.log; guest must be reset afterwards"
  },
  "kernel_refs": [
    "sys/dev/disk/dm/dm_pdev.c:128",
    "sys/dev/disk/dm/dm_pdev.c:143",
    "sys/dev/disk/dm/dm_pdev.c:168",
    "sys/dev/disk/dm/dm_pdev.c:249",
    "sys/dev/disk/dm/dm_dev.c:105",
    "sys/dev/disk/dm/dm_dev.c:66",
    "sys/dev/disk/dm/dm_dev.c:308",
    "sys/dev/disk/dm/dm_dev.c:326",
    "sys/dev/disk/dm/device-mapper.c:200",
    "sys/dev/disk/dm/dm_ioctl.c:711",
    "sys/dev/disk/dm/dm_table.c:136",
    "sys/dev/disk/dm/linear/dm_target_linear.c:67"
  ],
  "artifacts": [
    "dm_abba.c",
    "guest_duel.sh",
    "run.log",
    "ps_detail.txt",
    "run_patched.log",
    "panics_observed.txt",
    "fix.diff",
    "env.txt",
    "build.sh",
    "run.sh",
    "VERDICT.md",
    "manifest.json",
    "verdict.json"
  ]
}
