DF-0613 / fix_run.log
=== AFTER test: EBUSY fix applied (constructor fix + EBUSY fix) ===
Kernel: DragonFly 6.5-DEVELOPMENT #0: Fri Jul 3 17:30:11 UTC 2026 (noinv-installed, INVARIANTS OFF)
Module: ng_iface_after.ko (SHA256: d091a8d2d111d32a3516ae669d49e64962e5d4ba0d3539a36e51f91599608939)
--- Run 1 ---
=== BEFORE vmstat ===
(empty โ no netgraph allocations yet)
=== RUN ===
[+] Opened NG_CONTROL socket fd=3
[+] Created ng_iface peer node (hook leak -> inet)
[+] Interface name: ng0
[+] Brought ng0 UP
[*] Sending 2000 NGM_IFACE_POINT2POINT messages (arglen=0)...
[*] Expected leak: ~104000 bytes (2000 * (52 + 0))
[*] Check 'vmstat -m | grep Netgraph' before/after
... 500/2000 sent
... 1000/2000 sent
... 1500/2000 sent
... 2000/2000 sent
[+] Done: sent 2000 messages
[+] Each message leaked ~52 bytes (sizeof(ng_mesg) + arglen=0)
[+] Total leaked: ~104000 bytes
[*] Run 'vmstat -m | grep -i netgraph' to confirm M_NETGRAPH growth
RUN_RC=0
=== AFTER vmstat ===
netgraph 5 1.11K 0 390M 5.88K
โ M_NETGRAPH stayed at 1.11K (5 allocs) โ NO LEAK
--- Run 2 (determinism check) ---
=== RUN 2 (determinism) ===
[+] Opened NG_CONTROL socket fd=3
[+] Created ng_iface peer node (hook leak -> inet)
[+] Interface name: ng1
[+] Brought ng1 UP
[*] Sending 2000 NGM_IFACE_POINT2POINT messages (arglen=0)...
... 500/2000 sent
... 1000/2000 sent
... 1500/2000 sent
... 2000/2000 sent
[+] Done: sent 2000 messages
RUN_RC=0
=== AFTER RUN 2 vmstat ===
netgraph 9 2.20K 0 390M 11.8K
โ M_NETGRAPH grew by only ~1K (new node overhead), NOT 112K โ NO LEAK