Skip to content

vms-b9e: spawn_users SIGPIPE harness fix + Alpha H1/H2 SCALE diagnostic - #1071

Draft
baron-3dl wants to merge 1 commit into
mainfrom
work/vms-b9e-alpha-spawn
Draft

vms-b9e: spawn_users SIGPIPE harness fix + Alpha H1/H2 SCALE diagnostic#1071
baron-3dl wants to merge 1 commit into
mainfrom
work/vms-b9e-alpha-spawn

Conversation

@baron-3dl

Copy link
Copy Markdown
Contributor

Summary

Two changes on this branch, DIFFERENT landing status:

  1. KEEPERtests/qemu/test_syssvc_spawn_users.c: adds signal(SIGPIPE, SIG_IGN), copying the guard test_syssvc_showterm.c already has. Without it, a broken pipe to an already-exited DCL.EXE session child SIGKILLs the whole suite mid-run, hiding every assertion after that point. With the signal ignored, the same condition falls into a checked write() branch and reports a named failure instead of a dead test. Test-harness fix only, no product-code change.

  2. DIAGNOSTIC, NOT for merge as-istools/cross-alpha/test-init-syssvc-alpha.c: bumps OVMX_TEST_DEADLINE_SCALE 8→20 (the tcg_deadline.h clamp ceiling) and SUITE_TIMEOUT_SECS 300→700 in lockstep, to disambiguate rd vms-b9e's H1 (calibration — the 4 DCL suites blow their own inner poll deadlines under Alpha-TCG cold start, not the outer watchdog) from H2 (a real registration race in spawn_users that a bigger timeout cannot fix). CI run 34255023889 (workflow_dispatch on this branch) is currently exercising the Alpha vms-341 leg with this diagnostic. If the 4 DCL suites go green at SCALE=20, this raw bump gets replaced with a MEASURED Alpha-TCG cold-start budget + justification before merge (never a silent bump to turn red green, per INV-6). If spawn_users is still red, this diagnostic gets reverted and the real fix is the registration race itself.

H2 (spawn_users registration race) — x86_64 stress probe, cheap and decisive

Built a minimal custom initramfs from the ovmx-ktest image (same vms.ko + DCL.EXE + test_syssvc_spawn_users binary), booted qemu-system-x86_64 -accel kvm directly, and looped test_syssvc_spawn_users in-guest 500 times: 500/500 exit 0, 0/500 showed the "SPAWNed subprocess is registered in the executive process table" FAIL. The race does not reproduce on native x86_64/KVM after 500 real SPAWN+register+procscan cycles — rules out an always-on, arch-independent defect reachable at native speed. Does not rule out Alpha-TCG slowness widening a window x86_64 never opens; that needs Alpha-side gdb, tracked on vms-b9e.

Test plan

  • tests/qemu/test_syssvc_spawn_users.c SIGPIPE guard: unaffected on x86_64 (harness change only, no product-code path changed)
  • x86_64 stress probe: 500/500 clean (see above)
  • CI run 34255023889 Alpha leg (vms-341, ~45-60min, backlogged/workflow_dispatch-only) — pending, will determine H1 vs H2 disposition for the diagnostic commit

rd item: vms-b9e

Co-Authored-By: Claude Opus 4.8 (1M context) noreply@anthropic.com
Claude-Session: https://claude.ai/code/session_018q4jvj6GCkdbYjRvpy7Vwu

🤖 Generated with Claude Code

…(not a merge)

Two changes, DIFFERENT status — this branch is a DIAGNOSTIC, do NOT merge as-is:

1. KEEPER: tests/qemu/test_syssvc_spawn_users.c — signal(SIGPIPE, SIG_IGN),
   copying test_syssvc_showterm.c's guard. A broken pipe to an exited DCL.EXE
   child was SIGKILLing the suite mid-run and hiding every assertion after it;
   now it falls into a checked write() branch = a NAMED failure. Landable on
   its own.

2. DIAGNOSTIC (revert-or-justify per result): tools/cross-alpha/
   test-init-syssvc-alpha.c SCALE 8->20 + SUITE_TIMEOUT in lockstep. This scales
   the suites' INNER poll deadlines (wait_for_named_row/subprocess-registration/
   DCL_TIMEOUT_MS, ~30000ms*20=600s), which is where the 4 DCL suites actually
   blow under TCG cold-start (NOT the outer watchdog). Purpose: disambiguate
   vms-b9e H1 (calibration — the 4 DCL suites go green at SCALE=20) from H2
   (spawn_users' registration race, which no scale can fix). If H1: replace this
   raw bump with a MEASURED cold-start budget + justification before any merge
   (never a silent bump to turn red green). If H2: revert this, the race is the
   real fix.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018q4jvj6GCkdbYjRvpy7Vwu
@baron-3dl
baron-3dl marked this pull request as draft September 8, 2026 17:13
@baron-3dl

Copy link
Copy Markdown
Contributor Author

DO-NOT-MERGE / DIAGNOSTIC (vms-b9e). This branch carries a landable SIGPIPE harness fix + a NON-shippable SCALE 8->20 diagnostic to disambiguate H1 (calibration) vs H2 (race) on the Alpha leg. x86_64 500/500 clean already ruled out a native race. Hold until Alpha run 34255023889 lands: then either (H1) replace the raw SCALE bump with a MEASURED cold-start budget, or (H2) revert the bump — keeping the SIGPIPE fix either way. Converted to draft so it can't be auto-reaped.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant