GeezerVison is showing github.com — Fix Maven e2e flake when Central briefly serves a plugin as absent by mikolalysenko · Pull Request #494 · SocketDev/socket-patch
Conversation
Problem
On CI run 36899218369 (PR branch agent/fix-npm-crawler-store-discovery, SHA 444da8c6), the job e2e (ubuntu-latest, e2e_vendor_jvm_build, 4.0.0-rc-6, --ignored maven_reactor) failed on attempt 1. A re-run of the same SHA (attempt 2) passed. The failure was in the fixture warm-up, before any socket-patch code ran:
[WARNING] The POM for org.apache.maven.plugins:maven-dependency-plugin:jar:3.6.1 is missing, no dependency information available
[ERROR] Plugin org.apache.maven.plugins:maven-dependency-plugin:3.6.1 or one of its dependencies could not be resolved:
[ERROR] Could not find artifact org.apache.maven.plugins:maven-dependency-plugin:jar:3.6.1 in central (https://repo.maven.apache.org/maven2)
maven-dependency-plugin:3.6.1 is a long-published release, so Maven Central's CDN served it as absent for a moment. Because one job failed, the whole CI workflow (~200 jobs per attempt) went red and someone had to re-run it by hand. Every Maven capstone gets its first artifacts from warm_fixture: 24 legs in ci.yml across e2e_vendor_jvm_build, e2e_redirect_maven_build and e2e_vendor_maven_build.
Window checked: the last 500 workflow runs (2026-10-01 14:16 to 18:38 UTC). This was the only CI job that failed on attempt 1 and then passed on a re-run of the same SHA.
Root cause
warm_fixture calls Maven Central once and treats any failure as fatal on required legs. A plain retry would not help either: after a 404, Maven writes the miss into the local repository and won't ask again until the update interval passes:
... was not found in <repo> during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of <repo> has elapsed or updates are forced
Fix
crates/socket-patch-cli/tests/maven_build_common/mod.rs, warm-up only:
- Re-run the warm-up up to 3 times in total, with a 5s and then 10s pause, and only when Maven's output shows a resolution or transfer failure (
could not be resolved, Could not find artifact, Could not transfer artifact, Could not resolve dependencies, Failed to read artifact descriptor).
- Pass
-U on each retry so Maven ignores its cached "absent" result.
- Any other warm-up failure still fails on the first attempt. The tamper and checksum probes call
copy_dependencies directly, so they behave exactly as before. No test was removed, and no assertion or timeout changed.
Proof
- The failure and the cached miss reproduce locally. I used a local mirror of Central that returns 404 on the first request for
maven-dependency-plugin-3.6.1.jar, ran the same copy-dependencies goal on the same fixture pom, and used a fresh local repository:
- attempt 1:
Could not find artifact org.apache.maven.plugins:maven-dependency-plugin:jar:3.6.1, the same signature as CI
- attempt 2, plain re-run: fails with
This failure was cached in the local repository
- attempt 2 with
-U: BUILD SUCCESS, and commons-text-1.10.0.jar plus commons-lang3-3.12.0.jar are copied
- The real test recovers. I ran
e2e_redirect_maven_build::maven_scan_hosted_fresh_checkout_install_and_manifestless_vex with SOCKET_PATCH_MAVEN_E2E_REQUIRED=1 on Maven 3.9.11. A temporary local change, not committed, pointed only the warm-up at the faulty mirror. The mirror logged INJECTED 404 …/maven-dependency-plugin-3.6.1.jar, the test printed fixture warm-up could not resolve from Maven Central; retrying with -U (2/3), and the result was test result: ok. 1 passed (382s).
rustfmt --check passes on the touched file. cargo clippy -p socket-patch-cli --test e2e_redirect_maven_build -- -D warnings (it includes maven_build_common) reports no issues for this change. Note for the owner: cargo clippy -p socket-patch-cli --all-targets -- -D warnings already fails on main with 7 lints in tests/prebuilt_common/mod.rs (needless borrows, type_complexity, cloned_ref_to_slice_refs) on toolchain 1.93.1. That's out of scope here.
- CI on
5e315b8 is green: all 211 check runs passed or were skipped, including all 24 Maven legs. Bugbot found no issues.
Where tests run
Nothing moved or was removed. The same jobs and the same required-check names are kept.
🤖 Generated with Claude Code
https://claude.ai/code/session_01RWYw4tw9AjhhGuLVyBdkNn
Generated by Claude Code
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
The Maven capstones' fixture warm-up is the one step that fetches
from Maven Central. Central's CDN briefly served
maven-dependency-plugin 3.6.1 as absent (CI run 36899218369), failing
the e2e_vendor_jvm_build leg until a manual re-run of the same SHA.
Maven caches that miss in the local repository and will not re-ask
until the update interval elapses, so a plain retry fails too. Retry
the warm-up up to 3 times, only on resolution/transfer failures, and
force the re-check with -U.
Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
Claude-Session: https://claude.ai/code/session_01RWYw4tw9AjhhGuLVyBdkNn
cursor[bot] reacted with thumbs up emoji
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
✅ 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 5e315b8. Configure here.
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
|
Burn-down agent: ready for review at 5e315b8 (5e315b8451073bcd0c4b69aca0cbdd05f794fb94).
- CI: 207/207 non-skipped of 211 check runs on the head SHA, no failures or pending runs
- Bugbot: reviewed
5e315b8, no findings; 0 unresolved review threads
- Mergeable, no conflicts
- Reviewer note: Single-file change to the Maven e2e warm-up retry; reviewer should confirm the retry only covers transient Central misses.
Generated by Claude Code
|
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
|
Reviewed 5e315b845107. Ready to merge from this code review; no changes requested.
No blocking findings. Retries are limited to fixture warm-up and recognized resolution failures, stop after three attempts, and add -U only on retries to bypass Maven's cached missing-artifact result. The direct dependency-copy path used by tamper/checksum probes remains unchanged.
Validation: Reviewed the full changed helper and its callers. Current CI checks pass, including the Maven build suites. I did not rerun the network-dependent Maven end-to-end suites locally.
|
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Assignees
No one assigned
Labels
ci-janitor
Opened by the CI janitor routine (flakes, redundant tests, CI perf)
Ready for review
Agent-verified: mergeable, CI green, Bugbot clean — awaiting human review
Milestone
No milestone
Development
Successfully merging this pull request may close these issues.
Uh oh!
There was an error while loading. Please reload this page.
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.
|