Skip to content

ci: shard parity 8 ways + aggregate fan-in — the unsharded job hit the 6h cap - #8244

Draft
proggeramlug wants to merge 4 commits into
mainfrom
ci/8187-parity-shards
Draft

ci: shard parity 8 ways + aggregate fan-in — the unsharded job hit the 6h cap#8244
proggeramlug wants to merge 4 commits into
mainfrom
ci/8187-parity-shards

Conversation

@proggeramlug

Copy link
Copy Markdown
Contributor

Why

Follow-up to #8187 — this commit was pushed 11 minutes after that PR was squash-merged, so it never landed (branch state at merge time was the 603699ee5 head; verified by content on main, per the #7770 lesson).

The first full-tier run (31935729773) proved the problem: the unsharded parity job was killed by GitHub's 6-hour job cap (11:44→17:45, cancelled). The release gate (full-suite-gate, what release-packages.yml's await-tests waits for) structurally cannot complete without this.

What

  • parity becomes a plan-driven 8-shard matrix (run_parity_tests.sh --shard N/8, the same round-robin partition the gap suite uses). Each shard also runs parity_known_failures.py — shard-safe by design ("an entry whose test is not in this shard is never flagged") — and npm ci for the test(gap): make the gap gate capable of passing (10 of 15 snapshot entries recorded an unreachable status) #8198 oracle fixtures.
  • New parity-aggregate fan-in merges the shard reports via scripts/parity_report_merge.py (self-tested; refuses a missing shard with --expect, so a lost artifact is a red run, not a smaller green suite; reproduces the harness's own percentage formula) and runs the two gates whose baselines only make sense on the whole suite: the threshold minimums (a 62%-floor category with two tests in a shard would flap) and the per-module matrix trend.
  • gate fan-in requires parity-aggregate; ci_plan.py emits parity.total/shards.
  • Drops the stale "informational / does not block" comment block on the job — since the tiering, a red parity fails full-suite-gate.

Validation

A tier=full dispatch with exactly this tree ran on the old branch: run 31964093732 — see the comment below for shard/aggregate results when it completes.

proggeramlug pushed a commit that referenced this pull request Aug 16, 2026
@coderabbitai

coderabbitai Bot commented Aug 16, 2026

Copy link
Copy Markdown

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: e2debd16-8588-4717-a572-29203d9b319a

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@proggeramlug

Copy link
Copy Markdown
Contributor Author

pr-gate red on this PR is not this PR's code: gc-stress fails on test_gap_gc_net_once_flags_rekey, a witness test #8216 added after the #8187 merge that has never completed a CI run (its own PR's gc-stress was cancelled in yesterday's queue saturation). Deterministic SIGSEGV under force_verify, identical counters across two attempts — filed as #8259. This PR's diff is workflow + scripts only.

Every other job in both attempts is green. This cell will red pr-gate on every rebased PR until #8259 is fixed or XFAIL-triaged.

Ralph Küpper added 4 commits August 17, 2026 04:57
…e 6h cap

Run 31935729773's parity job was killed by GitHub's 6-hour job cap
(11:44->17:45, `cancelled`), so the release gate could not complete even in
principle. Now:

* `parity` is a plan-driven 8-shard matrix (`run_parity_tests.sh --shard
  N/8`, the same round-robin partition gap-suite uses), each shard also
  running `parity_known_failures.py` (shard-safe by design: an entry whose
  test is not in this shard is never flagged) and gets npm ci for the #8198
  oracle fixtures.
* `parity-aggregate` merges the shard reports via the new
  scripts/parity_report_merge.py (self-tested; REFUSES a missing shard with
  --expect so a lost artifact is a red run, not a smaller green suite;
  reproduces the harness's own percentage formula) and runs the two gates
  whose baselines only make sense on the whole suite: the threshold
  minimums (a 62%-floor category with two tests in a shard would flap) and
  the per-module matrix trend.
* `gate` fan-in requires parity-aggregate; ci_plan emits parity.total/shards.
* Dropped the stale "informational / does not block" comment block: since
  the tiering, a red parity fails full-suite-gate, which is what
  release-packages.yml keys on.
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