HDDS-16359. Make CI survive Maven Central rate limiting - #11175
Open
rjgoyln wants to merge 1 commit into
Open
Conversation
CI jobs fail during dependency resolution, before anything is compiled, when Maven Central answers HTTP 429. The retry settings carried in MAVEN_OPTS since HDDS-5187 configure Wagon, which stopped being the resolver transport when the runner image moved to Maven 3.9, so they have had no effect for some time. Only the resolver's own default of three retries applies, giving up after roughly 30 seconds of a rate-limit window. Any pull request whose base predates a dependency bump on master restores a cache that no longer holds the pinned version, so it must fetch that artifact over the network and is exposed to this failure.
rjgoyln
marked this pull request as ready for review
August 31, 2026 17:47
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
A PR based on an older master can restore a Maven cache built from newer POMs, causing a missing dependency to be fetched from Maven Central. If Central returns HTTP 429, the job fails during dependency resolution before compilation or tests.
The existing retry settings use
maven.wagon.http.*, but Maven 3.9 resolves dependencies throughmaven-resolver-transport-http, which usesaether.connector.http.retryHandler.*. The Wagon properties are ignored, leaving only the resolver's default of three retries (~30s), matching the 32s failure seen in the JIRA job.This changes the settings to the resolver properties, increasing retry time to ~275s. The maximum individual wait remains 50s, below the resolver's 300s
intervalMax, and existing job timeouts still bound total runtime.maven.wagon.http.poolis removed for the same reason.http.keepAliveremains because it is JDK-level.JIRA: https://issues.apache.org/jira/browse/HDDS-16359
Tests
Tested with Maven 3.9.16 against a repository returning HTTP 429:
MAVEN_OPTSmaven.wagon.http.retryHandler.count=0aether.connector.http.retryHandler.count=0aether.connector.http.retryHandler.count=10The Wagon setting has no effect; the resolver setting works as expected.