DF-2797 / fix_validation.log
DF-2797 fix validation (fix.diff applied to guest /usr/src, kernel rebuilt:
make -j8 nativekernel KERNCONF=X86_64_GENERIC ; make installkernel
fixed kernel: DragonFly dfbsd 6.5-DEVELOPMENT #1: Tue Sep 1 12:02:52 UTC 2026)
=== A/B 1: kernel mode, KLD adomain.ko on FIXED kernel ===
baseline (stock #0 kernel, from panic.txt):
panic: assertion "count" failed in alist_alloc at /usr/src/sys/kern/subr_alist.c:250
fixed (#1 kernel, serial console):
adomain: creating own alist(65536)
adomain: bl_free=65536, calling alist_alloc(bl,0,0) -- expect KKASSERT(count) panic
adomain: SURVIVED?! r=ffffffff (release-kernel: leaf wipe / infinite loop)
(kldload rc=0, kldunload rc=0 -- no panic, clean ALIST_BLOCK_NONE return)
=== A/B 2: standalone production-kernel emulation (-DNDEBUG) against PATCHED source ===
$ ./trigger_domain_fixed # baseline output in run.log
== T1 (silent leaf wipe, count==0) ==
T1 leaf-wipe: 0 zero-count allocs 'succeeded'; bl_free=65535 (of 65536); 1-block alloc now -> ok
=> 32*0 = 0 blocks (0 KB of DMA reserve) stolen silently; free-count says full
== T2 (infinite loop, count==0 partial leaf) ==
T2 hang: calling alist_alloc(bl, 0, 0) on partially-free leaf...
UNEXPECTEDLY returned
child exit=0 (baseline: exit 42 = hung 5s, SIGALRM-killed)
== T3 (alist_create radix wrap) ==
T3 create-wrap: alist_create(3000000000) ...
UNEXPECTEDLY returned
child exit=0 (baseline: exit 42 = hung 5s, SIGALRM-killed)
VERDICT: fixed -- count==0 returns ALIST_BLOCK_NONE (no wipe, no hang);
alist_create(3e9) returns NULL immediately (no radix-wrap loop); the
count==bl_radix full-capacity alloc of a leaf-root alist now succeeds
(fuzzer geometry 32 previously STRICT-failed; covered by the same `<=` fix).