Repository navigation
Ride out crates.io blips in coverage's cargo e2e - #1654
Mikola Lysenko (mikolalysenko) wants to merge 1 commit into
Conversation
The coverage job runs the real-cargo e2e suites without SOCKET_PATCH_CARGO_E2E_REQUIRED, so their cargo children kept cargo's default net.retry=3 (~11s). Their baseline fetch soft-skips when crates.io is down, but later fetches are hard assertions: on PR #1652 a static.crates.io connect blip during the (4b) revert's `cargo fetch --locked` in e2e_redirect_cargo_build failed coverage and with it ci-ok, which also gates the merge queue. cargo_command now sets CARGO_NET_RETRY=10 (~80s of cargo's own backoff, as #1459 does for required legs) when CI is set as well. Optional local runs still keep the default so an offline machine skips fast, and an ambient CARGO_NET_RETRY still wins. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017UzN47eRAtVax9Sbom2ffx
|
bugbot run Generated by Claude Code |
There was a problem hiding this comment.
✅ Bugbot reviewed your changes and found no new issues!
Comment @cursor review or bugbot run to trigger another review on this PR
Reviewed by Cursor Bugbot for commit afb77c3. Configure here.
|
Burn-down agent: labeled Ready for review.
Slack announcement not sent: this run has no Slack send tool. Generated by Claude Code |
|
Burn-down agent: labeled Ready for review at
Generated by Claude Code |
Final review brief (for the approver)What it does. The real-cargo e2e suites now widen cargo's Risk: low. One condition in a test helper. Effects: on CI a genuinely offline runner takes up to ~80s longer per cargo child before failing; an explicit Look here
Verified. Read the full diff and the helper it changes; no test skipped, removed or weakened, no workflow or required-check change. CI 54/54 settled on Changes I made. None. Open questions. None. Auto-merge is armed, so approving sends it straight to the merge queue. Generated by Claude Code |
Problem
The
coveragejob (and with itci-ok, a required check that also gates the merge queue) failed on PR #1652 at 4f7319c, job 119029890773, for a reason unrelated to the PR:This is the same crates.io blip class #1459 fixed for the required
cargo … lock-v*legs. Over the last ~200 CI runs (since 2026-10-12) it is the only infrastructure failure ofcoverage; the other coverage/ci-ok reds were real PR failures. In the merge queue one such blip evicts the entry and costs a full rebuild.Root cause
#1459 widened cargo's
net.retryonly whenSOCKET_PATCH_CARGO_E2E_REQUIREDis set. The coverage job runs the same real-cargo suites (e2e_redirect_cargo_build,e2e_redirect_cargo_shapes,e2e_vendor_cargo_build,mode_migration_cargo,e2e_safety_cargo_build) as optional, so their cargo children keep the defaultnet.retry=3(~11s). Optional mode soft-skips only the baseline fixture build; later fetches such as the (4b) revert'scargo fetch --lockedare hard assertions, so a blip after the baseline succeeded fails the job.Fix
cargo_e2e_matrix::cargo_commandsetsCARGO_NET_RETRY=10(~80s of cargo's own backoff) whenCIis set too, not only on required legs. GitHub Actions always setsCI=true. Optional local runs still keep the default, so an offline machine still skips quickly. An ambientCARGO_NET_RETRYstill wins. The old-cargo127.0.0.1:9proxy check builds its ownCommandwithCARGO_NET_RETRY=0, so it is unaffected. Only errors cargo classifies as spurious are retried. Checksum, resolver and--lockedfailures still fail at once.Proof
cargoshim on PATH,cargo test -p socket-patch-cli --test e2e_redirect_cargo_build:CIunset: all 13 cargo children (build×4,fetch×5,run,--version×3) seeCARGO_NET_RETRYunset, as before.CI=true: all 13 seeCARGO_NET_RETRY=10.[7] Could not connect ... after 0 ms): retry=3 fails after 12s, retry=10 rides out a simulated 20s blip and succeeds after 21s.rustfmt --checkis clean on the touched file.cargo clippy -D warningsreports nothing in it. The pre-existing errors intests/common/mod.rsandtests/prebuilt_common/mod.rsare unchanged.No tests removed or moved.
https://claude.ai/code/session_017UzN47eRAtVax9Sbom2ffx
Generated by Claude Code