FABRIC-2.md: ACL-RWT-style 3x3 Latin square re-run on Stadium substrate (item 5.1/F.3)
Found and fixed a real bug before any campaign work could start: EXEC-DOE's own CSV output was almost entirely lost to console interleaving with the routine per-tick heartbeat export -- same bug class as Section L's PLOT case. Fix: HB-OFF immediately before EXEC-DOE, HB-ON after DOE: complete. Confirmed HB-ON-first (the reverse order) does NOT fix it -- tested directly, row loss recurred identically. Also found: L8-DOE/WL-HI/WL-LO (the mechanism bare_metal/README.md describes as auto-run) don't exist anywhere in capsules/, and Makefile. starkernel's DOE_SEED variable is declared but never referenced -- both vestigial, matching Section K's earlier staleness finding. Built QEMU-serial-socket injection tooling (socat) to drive EXEC-DOE interactively after boot, since it requires live REPL input, not just observation. Two real defects found and fixed in that tooling itself: a log-discovery race (self-excluding the very log it needed to find, causing two separate stuck-injector incidents, one overnight) and an unredirected background launch that deadlocked socat on a full stdout pipe. Both fixed by having the orchestrator pass exact log/socket paths directly and always launching through the harness's tracked-background mechanism. First full campaign attempt ran all 9 cells as three ISA-blocked loops, reusing one build per architecture -- caught mid-run: this confounds ISA with time/session-order, invalidating the Latin square design. Discarded (logs kept as audit artifacts, not treated as valid data) and re-run clean: all 9 (arch, seed) cells in fully randomized order, fresh clean rebuild before every single cell, one continuous sitting. Result: 4,320/4,320 rows captured, zero VM errors anywhere. This validates the campaign mechanism runs cleanly and reproducibly under the post-4.6 Stadium substrate -- satisfies item 5.1's own concern that a green POST suite isn't evidence determinism holds post-migration. It does NOT produce an ACL-RWT overhead number: ACL.4th is not self-activated in this repo's default init.4th, so these 9 cells ran with ACL inactive. Reproducing the original +0.0054%-+0.0088% measurement needs a paired ACL-enabled/disabled run using this now-validated mechanism -- scoped, not attempted here. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
ea5d2c7ceb
commit
79d160c1ca