Repository navigation
ci(test): shard the Race Detector job across four runners - #935
Merged
Merged
Conversation
The race job runs every package on one 4-vCPU runner. The heavy race packages (tokenizer, security, parser, transpiler) run side by side, starve each other, and swing with the runner (tokenizer 79-120s, security 65-104s on identical commits), so they cross the 120s per-package timeout at random (PR #921, run 41586025728). scripts/race-shard.sh deals the packages round-robin, heaviest first, so each heavy package gets its own shard. Packages, flags and the 120s timeout match `task test:race`. A `Race Detector` aggregator job keeps the required check name and passes only if all four shards pass. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DnbRnTFErhoMJdAjVEeCg2
|
The latest updates on your projects. Learn more about Vercel for GitHub. 1 Skipped Deployment
|
|
Claude finished @ajitpratap0's task in 24s —— View job Review of PR #935: shard the Race Detector jobI read the diff only. I did not run the shards or the workflow. Verdict: Looks good. I found no blocking issues. What works
Suggestions (non-blocking)
Test plan: The only unchecked item is the CI run on this PR. The four shard jobs and the aggregator should pass. Please also confirm that branch protection lists |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Race Detectorjob runstask test:race(every package except cbinding,-timeout 120sper package) on one 4-vCPU runner. The heavy race packages run side by side and starve each other, and their wall time swings with the runner. On identical main commits, tokenizer took 79–97s and security 65–103s; PR ci(perf): GOMEMLIMIT with GOGC=off, pinned toolchain, cachegrind I1, matrix mode [W0-15] #921, which touches only CI scripts, hit the tokenizer timeout at 120s (run 41586025728). test: parallelize the equivalence sweeps that push race tests past 120s #932 cut in-package time but cannot fix cross-package contention on a shared runner.scripts/race-shard.sh SHARD SHARDSdeals packages round-robin, heaviest first (tokenizer, security, parser, transpiler, gosqlx, scripts/perf/gate), so tokenizer, security, parser and transpiler each land on their own shard. Packages,-raceflags and the 120s timeout are unchanged.task test:race:shard SHARD=n SHARDS=4.task test:raceis unchanged for local use andtask check..github/workflows/test.yml: a four-wayrace-shardmatrix plus aRace Detectoraggregator job (needs: race-shard,if: always()). The aggregator passes only when all shards succeed, so the required status check name is kept.Test Plan
test:raceset), all pass.race-shard.sh 4 4exits 2; the task errors when SHARD or SHARDS is missing.Race Detectoraggregator pass on this PR.Breaking Changes
None. CI and Taskfile only. The required check
Race Detectorkeeps its name.🤖 Generated with Claude Code
https://claude.ai/code/session_01DnbRnTFErhoMJdAjVEeCg2