ci(coverage): raise RUST_MIN_STACK so llvm-cov coverage runs don't stack-overflow#4346
Conversation
The Rust Core Coverage lane aborts with a stack overflow in cron::scheduler::tests::run_agent_job_returns_error_without_provider_key (introduced by tinyhumansai#4166). The test drives the full agent harness; under cargo-llvm-cov, instrumentation inflates per-frame stack usage enough to blow libtest's default ~2 MB per-test-thread stack, SIGABRTing the whole run. Set RUST_MIN_STACK=64MB for both coverage jobs so instrumented test threads have headroom. CI-only; no source/test changes. Virtual address reservation only, so no real memory cost.
|
Warning Review limit reachedYou’ve reached a temporary PR review limit under our Fair Usage Limits Policy. Next review available in: 23 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (1)
📝 WalkthroughWalkthroughAdds ChangesRust Coverage CI Stack Size
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~2 minutes Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
Comment |
With the stack-overflow fixed (RUST_MIN_STACK), the coverage job now runs the entire instrumented test suite end-to-end instead of aborting early — which exceeds the old 30-min budget. Raise timeout-minutes 30 -> 50. The last run showed all tests passing (zero overflow) right up to the 30-min cutoff, so it just needs more wall-time.
M3gA-Mind
left a comment
There was a problem hiding this comment.
Reviewed and verified: green CI, correct. Approving. Thanks!
Summary
The Rust Core Coverage (cargo-llvm-cov) lane is currently red on
main— it SIGABRTs with a stack overflow:That test (added by #4166) drives the full agent harness. Under
cargo-llvm-cov, coverage instrumentation inflates per-frame stack usage, which blows libtest's default ~2 MB per-test-thread stack and aborts the entire coverage run — so the lane fails repo-wide, not just on one PR.Fix
Set
RUST_MIN_STACK=67108864(64 MB) on both the Rust Core Coverage and Rust Tauri Coverage jobs, so libtest's per-test threads get enough headroom under instrumentation. It's a virtual address reservation only (no real memory cost), and CI-only — no source or test changes.Why this approach
run_agent_job, so bumping the stack for the instrumented run is the correct, minimal fix (vs. refactoring the harness or the test).Test plan
CI verification: this PR's Rust Core Coverage lane should no longer stack-overflow (watching this run).
Surfaced while landing the Meetings redesign (#4308); that PR's own lanes were green — this unrelated coverage breakage was blocking the gate.
Summary by CodeRabbit