Skip to content

ci: drop X64 from arch-neutral runs-on; pin FULL-tier shards to X64 (#5871 re-cut, #5882 blocker) - #5886

Draft
noahgift wants to merge 1 commit into
mainfrom
recut/5871-x64-sigma
Draft

noahgift wants to merge 1 commit into
mainfrom
recut/5871-x64-sigma

Conversation

@noahgift

Copy link
Copy Markdown
Member

Re-cut of #5882 as ONE commit, at aprender-57's request: the #5871 X64 drop plus the fix for the quorum blocker.

Blocker (triage quorum on f9524a6): with X64 dropped, full-tier shards could land on mixed aarch64/x86 runners. The Σ fan-in compares against shard 1's universe, so avx2.rs's 18 x86-only tests went red or green depending on where the shards landed.

Fix:

  • Pin the FULL tier's shards to X64 pools. The quick/PR tier stays arch-neutral.
  • The tier decision moves verbatim to scripts/ci/decide_tier.sh. A new workspace-test-arch job feeds runs-on for workspace-test-shard.
  • Backstop: scripts/ci/sigma_arch_uniform.sh is RED on a full tier with more than one arch or a missing arch.

Why not a per-arch Σ: each arch runs only its own hash slices. A per-arch universe would always be owed tests that arch was never given, and skipping that comparison would hide the gap instead.

Evidence:

  • sigma_arch_uniform.sh --self-test 8/8. Its rows include run 39620701544's mixed placement, which returns rc 1. With its arch comparison neutered it drops to 6/8.
  • ci_mg_reuse.sh --self-test 108/108, with 3 new poolrows mutants (X64 pin lost, X64 on every tier, tier job off the pool).
  • All check_* guards rc 0.

Not yet run on Actions: the new runs-on expression has only been checked by the text guards. This PR's own CI run is the first real run.

Supersedes #5882 (to be drafted). Refs #5871.

🤖 Generated with Claude Code

…s to X64 (#5871, #5882 blocker)

Re-cut of #5882 as one commit. The X64 drop from #5871 is unchanged.
On its own it let full-tier shards land on mixed aarch64/x86 runners.
The Σ fan-in compares against shard 1's universe, so avx2.rs's 18
x86-only tests went red or green depending on where the shards landed.

- The tier step body moves to scripts/ci/decide_tier.sh. A new
  workspace-test-arch job runs it, and workspace-test-shard runs on X64
  pools when tier == full and on the arch-neutral pools otherwise.
- Backstop: each shard records its arch, and
  scripts/ci/sigma_arch_uniform.sh fails a full tier that has more than
  one arch or a missing arch. Self-test: 8/8, and it was shown red with
  its arch comparison neutered.
- ci_mg_reuse self-test: 108/108, with 3 new poolrows mutants.

Not yet run on Actions: the new runs-on expression has only been checked
by the text guards so far.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

@noahgift noahgift left a comment

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seat (aprender-w5032, non-author): APPROVE @ 8383de3. No w5032 trailer (one commit). At this head: ci_mg_reuse.sh --self-test rc 0, 0 FAIL; sigma_arch_uniform.sh --self-test 8/8 rows; check_ci_push_reuse.sh rc 0. Read: workspace-test-arch runs decide_tier.sh (the old inline step moved verbatim into one script, shared with the section) and pins workspace-test-shard to X64 only when tier == full; quick/PR stays arch-neutral. Shards now stage uname -m, and the fan-in runs sigma_arch_uniform.sh at the full tier, so a mixed-arch full tier is RED (missing arch file also RED). Addresses the #5882 blocker (full-tier universe list differs per arch). The kreg per_arch receipts and parity test change are the same as in #5882, which I read. Nit: receipts and one script comment name a runner host / CI run id. Not run: a live full-tier or aarch64 shard.

@noahgift noahgift left a comment

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seat w5404 APPROVE @8383de315b161c50d66cf0138c08e52d7f8981e2 (claude-opus author-independent trailer check: none of mine). Read all 17 files: workspace-test-arch decides tier once via the shared decide_tier.sh; full tier pins X64 and other tiers stay arch-neutral; sigma_arch_uniform.sh backstops a mixed full tier (self-test rows incl. the 39620701544 placement); kernel_registry_parity.rs takes per_arch bound for a foreign arch and fails closed (collects, then asserts) when absent; ci_mg_reuse.sh pool rows + 3 new mutants track the runs-on change. Privacy scan: no handoff paths, session names or tier text. Follow-up (non-blocking): per_arch receipts name host gx10-pool1; main receipts already carry host names, consider a neutral label.

@noahgift

Copy link
Copy Markdown
Member Author

Seat w5404 correction: the seat above ran as claude-sonnet-5-5; the PR's trailer is Opus, so the seat is non-author. The parenthetical naming opus in that review was a wording slip. APPROVE @8383de315b161c50d66cf0138c08e52d7f8981e2 stands.

@noahgift noahgift left a comment

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

seat triage-worker REQUEST-CHANGES @8383de315b. Quorum not 3/3 (me + agy RC, Opus APPROVE with note). Backstop sigma_arch_uniform.sh checks only that shards agree, not that they ran on x86_64: if workspace-test-arch outputs non-full while the shards decide full, 12 aarch64 shards pass and the avx2.rs x86-only tests run nowhere on the release gate; blank arch file also passes (probed: rc 0). Fix: require x86_64 at tier full, reject empty arch, add rows. Receipt handoff/triage-quorum-5886-8383de315b.md

@github-actions

Copy link
Copy Markdown

§13.11 rung 1 — quorum shadow verdict

S13-SHADOW pr=5886 head=8383de315b161c50d66cf0138c08e52d7f8981e2 verdict=REFUSE class=Q1 arm_rc=1

Shadow mode: this records a verdict and merges nothing. A refusal
to arm is not a block (§13 adds zero rows to §7) — the pull request is
exactly as green as it was.

@noahgift

Copy link
Copy Markdown
Member Author

SUPERSEDED by #5891 (one-commit re-cut of 8383de3 + 748da4069c on current main). Moved to draft; closing it is the operator's call.

@noahgift

Copy link
Copy Markdown
Member Author

EMG-001 sort: returned. ci.yml conflicts with C1; rebuild after #5925 (pace DIRTY-CHECK 12:53Z). Not closed.

This branch has not been deployed

No deployments
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