fix(ci): raise test job timeout for instrumented main lane - #1625
Merged
Merged
Conversation
The main-branch Python 3.12 step runs the fast suite under branch coverage, which measures ~3x the cost of the uninstrumented lanes (~25 min each). The tracer overhead concentrates in CPU-bound detector replay tests that compile fresh code objects per iteration, so neither the sysmon core nor line-only coverage recovers the budget. The 35-minute cap has cancelled the lane on every main push since the detector suites grew; raise it to 75 so the coverage lane completes while uninstrumented lanes remain ~25 min. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Merged
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
testjob timeout from 35 to 75 minutes so the main-branch Python 3.12 coverage lane can completeRoot cause
The main-only "fast tests with coverage" step measures the suite under branch coverage, which costs ~3x the uninstrumented lanes (measured locally: 16:36 instrumented vs ~6 min uninstrumented; the uninstrumented CI siblings take 22-26 min). The overhead concentrates in CPU-bound detector replay tests (e.g.
tests/detectors/test_jit_script_detector.py, 1,818 tests) that compile fresh code objects per iteration, which defeats both the C tracer and thesysmoncore (benchmarked 3.0x vs 2.7x — switching cores does not recover the budget).Since the detector suites grew, every push to main has had
Test Python 3.12killed at the 35-minute cap (most recently run 27274096829, cancelled at 35m13s while the sibling 3.10/3.11/3.13 lanes passed in 22-26 min). The failure was previously masked because earlier jobs in the workflow failed first.Why not alternatives
COVERAGE_CORE=sysmon: benchmarked — only ~10% faster because the replay tests constantly execute fresh code objects; branch coverage also forces a fallback to the C tracer on Python ≤3.13.Validation
🤖 Generated with Claude Code