DF-4922 / run.log
=== DF-4922 PoC (clean run) ===
DragonFly dfbsd 6.5-DEVELOPMENT DragonFly 6.5-DEVELOPMENT #0: Thu Jul 2 06:02:54 UTC 2026 root@dfbsd:/usr/obj/usr/src/sys/X86_64_GENERIC x86_64
flakey module loaded
--- M_DM baseline ---
dm 3 336 0 390M 3
--- control: vn3 attach+detach, NO dm load ---
CONTROL attach vn3: OK
CONTROL detach vn3: OK (expected)
--- path A: up_int+down_int == 0 ---
attach vn0 OK
load rc=1 out='ioctl reload call failed: Invalid argument
Command failed' (expect Invalid argument)
--- path B: unknown feature ---
attach vn1 OK
load rc=1 out='ioctl reload call failed: Invalid argument
Command failed' (expect Invalid argument)
--- path C: interval overflow ---
attach vn2 OK
load rc=1 out='ioctl reload call failed: Invalid argument
Command failed' (expect Invalid argument)
--- M_DM after A+B+C (3 leaked pdevs expected) ---
dm 6 1.08K 0 390M 18
--- remove half-created dm devices ---
removing dm device No
--- M_DM after dm removal (must NOT shrink: pdev refs leaked) ---
dm 6 1.08K 0 390M 18
--- detach leaked units vs control ---
LEAK-UNIT vn0: vnconfig: VNIOCDETACH: Device busy <-- pdev ref leaked, device pinned
LEAK-UNIT vn1: vnconfig: VNIOCDETACH: Device busy <-- pdev ref leaked, device pinned
LEAK-UNIT vn2: vnconfig: VNIOCDETACH: Device busy <-- pdev ref leaked, device pinned
CONTROL vn3 re-attach+detach: OK (proves EBUSY above is the leak, not the tool)
=== DF-4922 PoC end ===