Repository navigation
Stop Maven e2e evictions on Central 429s - #1189
Merged
Mikola Lysenko (mikolalysenko) merged 1 commit intoOct 9, 2026
Merged
Conversation
The Maven capstones' fixture warm-up retried Maven Central itself after a resolution failure. Central's CDN rate-limits shared runner IPs with 429s, which Maven reports as an absent artifact, so the retries 5 and 10 seconds later fail the same way. That evicted pr-1103 from the merge queue at 21:14 UTC (run 37843887676, e2e_redirect_maven_build on Maven 3.9.3). Retries now go through Google's official Maven Central mirror, a separate CDN. The mirror keeps the id `central`, so the local repository records the same origin as a direct fetch and every later step, which runs with plain settings, reuses it unchanged. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016uTRZozqF1m3bgNxiAbspS
Collaborator
Author
|
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 ac19c0d. Configure here.
Tanmay Singla (Tanmay182003)
approved these changes
Oct 8, 2026
Mikola Lysenko (mikolalysenko)
deleted the
ci-janitor/maven-warmup-mirror
branch
October 9, 2026 00:13
This was referenced Oct 9, 2026
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.
Problem
Maven Central flakes are evicting PRs from the merge queue. pr-1103 (#1103, which only changes
go_sum_edit.rs) was evicted twice today by Maven legs:e2e (ubuntu-latest, e2e_redirect_maven_build, maven, 3.9.3). The fixture warm-up failed all 3 attempts (21 s total). Maven reportedmaven-dependency-plugin:3.6.1as absent onrepo.maven.apache.org, failing in 0.39 s per attempt. That version has been published for years. Panic attests/maven_build_common/mod.rs:106(the required-leg guard).e2e_vendor_maven_build, maven, 3.6.3. The install Maven step got six HTTP 429s fromrepo.maven.apache.org. This PR does not fix that one; Cut release-test wait time and recover Maven downloads #1166 does (see below).Each eviction also rebuilt the queue entries behind it (#1058 and #1168 at 22:38).
Root cause
Central's CDN rate-limits shared runner IPs with 429s, and Maven reports a fast 429 or a negative-cached 404 as an absent artifact. The warm-up retried the same host 5 s and 10 s later with
-U, so it hit the same limiter each time. From this agent's container,repo.maven.apache.orgwas still answering 429 for the exactmaven-dependency-plugin-3.6.1.pomat about 22:55 UTC, while Google's Central mirror answered 200.Fix
The first warm-up attempt still goes to Central. After a resolution failure, the retries (with
-U) go through Google's official Maven Central mirror,maven-central.storage-download.googleapis.com/maven2, which runs on a separate CDN. The fallbacksettings.xmlgives the mirror the idcentral. The local repository therefore records the same origin as a direct fetch, and every later step, which runs with the test's plain or socket-mirror settings, reuses the warmed repository unchanged. The first retry no longer waits 5 s, since the new host has no reason to be throttled; the second retry waits 5 s.The change only affects the warm-up, which is the one step in these capstones that fetches from Central. No assertion changed. A non-resolution failure still fails right away, as before.
Proof
Every caller of
warm_fixturewas tested locally with Maven 3.9 andSOCKET_PATCH_MAVEN_E2E_REQUIRED=1. The first attempt was forced to fail with a resolution error by pointing it at a dead mirror (local-only hack, reverted). In each case the retry went through the Google mirror and the whole capstone passed:e2e_vendor_maven_build -- --ignorede2e_redirect_maven_build -- --ignorede2e_vendor_jvm_build -- --ignored maven_reactore2e_vendor_maven_build -- --ignored, final code, no hackrustfmt --checkis clean on the touched file.cargo clippy -p socket-patch-cli --all-targets -- -D warningsreports nothing in it; its existing findings inprebuilt_common,commonande2e_vendor_yarn_berry_buildare unchanged on origin/main with local rustc 1.93.1.Related
archive.apache.orgfallback for the Maven install step, which fixes the 22:38 429 eviction. It touches only workflows and scripts, so it doesn't overlap this PR. Together they cover both places the Maven legs reach Central.🤖 Generated with Claude Code
https://claude.ai/code/session_016uTRZozqF1m3bgNxiAbspS
Generated by Claude Code