GeezerVison is showing github.com — Bug hunt ledger: Maven · SocketDev/socket-patch · Discussion #318
Bug hunt ledger: Maven
#318
Sep 30, 2026
·
21 comments
Discussion options
-
Uh oh!
There was an error while loading. Please reload this page.
-
Uh oh!
There was an error while loading. Please reload this page.
|
[agent] Progress ledger for the scheduled Maven bug-hunt routine (label pm:maven).
Last updated: 2026-10-03 (run 12), main 045d7ec, latest release 4.0.0. Maven 3.9.16 (newest 3.9) and 4.0.0-rc-7 (newest 4.x) are still the newest releases.
Coverage matrix
Oracles: a real Maven resolve, plus a marker in the patched member (jar or pom). Global -g cells use real Maven installs into the local repository and a stub patch API (/tmp-local Python stub serving batch / by-package / view / blob). v5 vendored cells use the repo capstones (e2e_vendor_jvm_build, e2e_vendor_maven_build, e2e_redirect_maven_build) and local, uncommitted variants of them. Linux runs use JDK 21; the macOS / Windows probes use the runner's default JDK. From run 6, variant fixtures resolve through a local caching mirror of Central (mirrorOf central) to avoid 429s.
v5 global mode (-g)
| OS |
Maven |
scan -g default |
M2_HOME set |
settings.xml <localRepository> |
Windows HOME≠USERPROFILE |
-g --mode hosted refusal |
agent apply / vex / rollback |
read-only global dir |
| Linux |
3.6.3 / 3.8.8 / 3.9.11 / 4.0.0-rc-7 |
pass |
fail #423 (re-checked run 6) |
fail #423 (re-checked run 6) |
n/a |
pass (3.9.11) |
pass (3.9.11); rollback -g under M2_HOME drops the record, fail #423 |
human pass / JSON fail #424 |
| macOS |
3.6.3 / 3.9.11 / 4.0.0-rc-7 |
pass (probe) |
fail #423 |
fail #423 |
n/a |
untested |
untested |
untested |
| Windows |
3.6.3 / 3.9.11 / 4.0.0-rc-7 |
pass (probe) |
fail #423 |
fail #423 |
fail #423 |
untested |
untested |
untested |
v5 vendored / hosted (Linux unless noted)
| Maven |
reactor capstone (auto) |
reactor --maven-config=none: -o |
none: cd module |
none: -f root from outside |
reactor path with , / space / %2F |
reactor + existing maven.config (CRLF / no EOL / user tail) |
reactor + aether.checksums.algorithms=SHA-256 |
reactor profile-overridden ${prop} |
single-POM %XX path |
hosted <repositories/> |
| 3.6.3 |
pass (run 6) |
blocked |
blocked |
untested |
untested |
untested |
n/a |
blocked (429) |
untested on v5 |
untested on v5 |
| 3.8.8 |
blocked (429) |
blocked |
blocked |
untested |
untested |
untested |
untested |
blocked (429) |
untested on v5 |
untested on v5 |
| 3.9.11 |
pass |
fail #430 |
fail #430 |
pass |
pass (comma: fallback repo) |
pass |
pass |
fail #459 |
fail #350 |
fail #342 |
| 4.0.0-rc-7 |
pass |
fail #430 |
pass |
pass |
untested |
untested |
pass |
fail #459 |
untested on v5 |
fail #342 |
v5 vendored reactor: external version management (runs 5–6, Linux)
| Maven |
BOM import = base |
BOM import ≠ base |
external parent ≠ base |
external ${prop} overridden ≠ base in local root |
BOM bump after vendoring |
external-parent ${prop} = base |
4.1.0 <parent/> + root ${prop} |
4.1.0 <parent/> literal / versionless |
#459 reverse (profile = base) |
single-POM BOM ≠ base |
| 3.6.3 |
untested |
fail #488 |
fail #488 |
fail #488 |
untested |
fail #513 |
n/a |
n/a |
untested |
untested |
| 3.8.8 |
untested |
fail #488 |
fail #488 |
fail #488 |
untested |
fail #513 |
n/a |
n/a |
untested |
untested |
| 3.9.11 |
pass |
fail #488 |
fail #488 |
fail #488 |
fail #488 |
fail #513 |
n/a |
n/a |
degraded (unpatched, warned, VEX refuses) |
no downgrade |
| 4.0.0-rc-7 |
pass |
fail #488 |
fail #488 |
fail #488 |
fail #488 |
fail #513 |
fail #513 |
pass |
untested |
no downgrade |
v5 vendored reactor: maven.config user properties and VEX / --check (run 7, Linux)
| Maven |
maven.config --define=k=v overrides pom prop |
maven.config -D k=v |
maven.config -Dk=v (control) |
vex / vendor --check, relativePath = directory |
relativePath .. |
relativePath = file |
| 3.6.3 |
fail #535 |
fail #535 |
pass |
fail #534 |
untested |
untested |
| 3.8.8 |
fail #535 |
fail #535 |
pass |
fail #534 |
untested |
untested |
| 3.9.11 |
fail #535 |
fail #535 |
pass |
fail #534 |
fail #534 |
pass |
| 4.0.0-rc-7 |
fail #535 |
n/a (Maven 4 ignores the form) |
pass |
fail #534 |
untested |
untested |
v5 vendored reactor: maven.config # comment lines (run 8, Linux)
| Maven |
# -Dct.version=<base> over newer pom prop |
# -Dct.version=<newer> over base pom prop |
controls (no config / # note) |
stock capstones (reactor, single-POM, hosted) |
| 3.6.3 |
n/a (Maven rejects #) |
n/a |
n/a |
reactor pass; single-POM blocked (network) |
| 3.8.8 |
n/a (Maven rejects #) |
n/a |
n/a |
reactor blocked (network) |
| 3.9.11 |
fail #550 |
fail #550 |
pass |
pass (earlier runs) |
| 3.9.16 |
fail #550 |
fail #550 |
pass |
pass / pass / pass |
| 4.0.0-rc-7 |
fail #550 |
fail #550 |
pass |
pass (earlier runs) |
v5 vendored reactor: post-vendor drift and remove (run 9, Linux)
| Maven |
module added after vendoring: vendor --check |
same: vex |
same: re-vendor |
remove <purl> after a user edit to the wired parent |
| 3.6.3 |
untested |
untested |
untested |
untested |
| 3.8.8 |
pass (drift detected) |
fail #584 |
pass |
untested |
| 3.9.16 |
pass (drift detected) |
fail #584 |
pass |
pass |
| 4.0.0-rc-7 |
pass (drift detected) |
fail #584 |
pass |
untested |
v5 vendored reactor: version boundaries, CI-friendly versions, implicit subprojects, #584 siblings (run 10, Linux)
| Maven |
.gitignore *.jar (handover from gradle) |
stock reactor capstone |
${revision} root + -Drevision in maven.config |
#584 sibling: literal added to b |
#584 sibling: module under second local root added later |
second local root at vendor time |
4.1.0 implicit subprojects (no <subprojects>) |
explicit <subprojects> control |
| 3.6.3 |
untested |
pass |
blocked (429) |
untested |
fail #584 |
pass |
n/a |
n/a |
| 3.8.8 |
untested |
pass |
untested |
untested |
untested |
untested |
n/a |
n/a |
| 3.9.0 / 3.9.1 / 3.9.2 |
untested |
pass |
untested |
untested |
untested |
untested |
n/a |
n/a |
| 3.9.16 |
fail #620 (comment) |
pass |
pass |
fail #584 |
fail #584 |
pass |
n/a |
n/a |
| 4.0.0-rc-7 |
untested |
pass |
pass |
untested |
fail #584 |
pass |
fail #622 |
pass |
v5 vendored reactor: interpolated dependency coordinates (run 11, Linux)
| Maven |
${prop} groupId (local parent prop) |
${prop} artifactId |
literal control (file-form relativePath) |
| 3.6.3 |
fail #655 |
untested |
pass |
| 3.9.11 |
fail #655 |
fail #655 |
pass |
| 3.9.16 |
fail #655 |
untested |
pass |
| 4.0.0-rc-7 |
fail #655 |
untested |
pass |
v5 hosted: dependency coordinate matching (run 12, Linux)
| Maven |
${prop} groupId |
${prop} artifactId |
<exclusions> before <groupId> |
literal control |
| 3.6.3 |
fail #683 |
fail #683 |
fail #683 |
untested |
| 3.9.11 |
fail #683 |
fail #683 |
fail #683 |
pass |
| 3.9.16 |
fail #683 |
fail #683 |
fail #683 |
untested |
| 4.0.0-rc-7 |
fail #683 |
fail #683 |
fail #683 |
untested |
v5 hosted Trusted Checksums boundary (#258, run 5, Linux)
| Maven |
e2e_redirect_maven_build (unenforced warning ⇔ tamper enforcement) |
| 3.6.3 |
pass (run 6) |
| 3.8.8 |
pass (run 6) |
| 3.9.3 |
pass |
| 3.9.4 |
pass |
| 4.0.0-rc-7 |
pass |
v4.0.0 results (runs 1–2, main f6b7fb9; not re-run on v5 unless shown above)
| OS |
Maven |
Vendored plain / space / unicode path |
Vendored %XX in path |
Vendored <repositories/> |
Hosted direct / transitive (depMgmt) |
Hosted <repositories/>, <dependencyManagement/>, comment in depMgmt |
Hosted re-run idempotent |
Hosted → vendored takeover |
Vendored + SHA-256/512-only checksums |
Vendored re-run / revert / remove / rollback |
| Linux |
3.6.3 |
pass |
fail #350 |
fail #342 |
pass |
fail #342 |
untested |
untested |
pass (property ignored) |
untested |
| Linux |
3.8.8 |
pass (unicode) |
fail #350 |
fail #342 |
pass |
fail #342 |
untested |
untested |
fail #394 |
untested |
| Linux |
3.9.11 |
pass |
fail #350 |
fail #342 |
pass |
fail #342 |
pass |
no revert (#271) |
fail #394 |
pass |
| Linux |
4.0.0-rc-7 |
pass |
fail #350 |
fail #342 |
pass |
fail #342 |
untested |
untested |
fail #394 (build breaks) |
untested |
| macOS |
3.6.3 / 3.9.11 / 4.0.0-rc-7 |
pass (probe) |
fail #350 |
fail #342 |
untested |
untested |
untested |
untested |
untested |
untested |
| Windows |
3.6.3 / 3.9.11 / 4.0.0-rc-7 |
pass (probe) |
fail #350 |
fail #342 |
untested |
untested |
untested |
untested |
untested |
untested |
Backlog
- Maintainer request (global
-g): mostly covered in run 3 (see the matrix and the 20261001T061707Z entry). Still open: -g agent apply / rollback / vex and the read-only global dir on macOS / Windows (probe). Keep this item until those cells pass or fail. It's blocked on item 1: a probe branch can't be cleaned up while git push --delete is denied.
- A maintainer needs to delete the stale probe branches
bughunt/maven/20260930-vendored-paths and bughunt/maven/20261001-global-repo. git push --delete hung up in run 4 and was denied by the session permission policy in runs 5 and 6 (not retried since). Probe commits must use the default (signed) git identity. Don't override user.email.
- Vendored Maven reactor skips a dependency whose groupId or artifactId is a ${property}, so that module builds Central's unpatched jar while vendor, vendor --check and vex all report it patched #655 siblings: a
${prop} groupId in the root dependencyManagement. Hosted Maven adds a dependencyManagement pin that the direct literal overrides when the dependency's groupId/artifactId is a ${property} or <exclusions> come first, so the build stays unpatched while scan reports redirected and VEX attests not_affected #683 siblings (hosted): ${project.groupId}; <type> / <classifier> before <groupId>; rollback / re-run after a shadowed dM pin. Low-yield (untested): the single-POM vendored backend + ${prop} groupId (it injects only a <repository> and matches no declarations).
2b. Vendored Maven 4 reactor with implicit subprojects (model 4.1.0, no <subprojects>) is wired as a single POM, so a warm ~/.m2 builds the unpatched jar while vex attests not_affected #622 follow-ups: scan --mode vendored / get --mode vendored on the implicit-subproject layout; an implicit layout with a nested aggregator; vendor --revert on it.
- Hosted: a pre-existing
.mvn/maven.config with failIfMissing=true plus a user checksums.sha256, and a rollback round trip, end to end (maven_trusted_checksums_left).
- Other user-property sources vs the reactor planner (Vendored Maven reactor ignores user properties set in .mvn/maven.config as --define=k=v or -D k=v, so a 1.11.0 build is silently downgraded to 1.10.0-socket.* with no warning #535 / Vendored Maven reactor reads -D properties from commented-out .mvn/maven.config lines, so a 1.11.0 build is silently downgraded to 1.10.0-socket.* (or a valid patch is refused) #550 family):
-D values containing ${...} (Maven 4 interpolation).
${revision}, the Vendored Maven reactor vex attests not_affected after a module added later declares the base version, although vendor --check flags the drift and that module builds Central's unpatched jar #584-sibling cells and the single-POM vendored capstone on 3.6.3 / 3.8.8 through a caching mirror (the harness warm-up has no mirror hook; a local variant with mirrorOf central → localhost works).
- The Vendored Maven reactor ignores profile <properties>, so a version an active profile raises is silently downgraded to the patched base (1.11.0 → 1.10.0-socket.*) with exit 0 and no warning #459 reverse case and BOM bump on 3.6.3 / 3.8.8 / 4.0.0-rc-7.
- Windows long paths + CRLF checkout of
.socket/vendor/maven2 (the * -text .gitattributes).
- The reactor capstone variants from run 4 on 4.0.0-rc-7 (comma /
%2F paths, existing CRLF maven.config).
- The v4.0.0-era cells on 3.9.16 (hosted re-run idempotency,
%XX path, <repositories/>).
Known non-bugs
patches-api.socket.dev / patch.socket.dev aren't used. Stage manifests locally, or use the Python / wiremock stubs.
maven-dependency-plugin:3.6.1 depends on commons-text 1.10.0, so fixtures that patch commons-text 1.10.0 get the plugin realm's Central copy in the local repository (the same effect as Same-GAV Maven patches are shadowed when a build plugin depends on the same GAV in a reactor build #274). Use plugin 3.1.2 for the resolve oracle.
- The sandbox locale is POSIX: Maven dies with
InvalidPathException … unmappable characters on a unicode project path unless LC_ALL=C.UTF-8. That's a sandbox artifact, not a socket-patch bug.
- Hosted literal version range
<version>[1.10.0]</version> → redirect_maven_dep_version_mismatch, redirected: 0, nothing written: documented behaviour.
- Central 429 bodies cached as
.pom files ("Non-parseable POM … Your…") are rate-limit artifacts. Delete poms under 200 bytes from the seed repo and retry.
- Maven 4 explicit
<subprojects> aggregator: planned as a reactor on v5 (pass, run 10). The implicit case (no <subprojects>) is Vendored Maven 4 reactor with implicit subprojects (model 4.1.0, no <subprojects>) is wired as a single POM, so a warm ~/.m2 builds the unpatched jar while vex attests not_affected #622.
- Linux sandbox: Java's
user.home comes from passwd, not $HOME. Pass -Duser.home=$HOME to Maven when faking a home directory.
--maven-config=none cells need a local repo warmed per Maven version: a repo warmed for one version misses the other versions' default lifecycle plugins.
- Offline
rollback -g without the before-blob → loud exit 1 "--offline prevents fetching": documented.
- Already filed elsewhere; don't re-file: Hosted Maven Trusted Checksums are silently inert on Maven 3.9.0–3.9.3 (docs and the test gate claim ≥3.9 enforces) #258–Vendored Maven jar rebuild is not byte-reproducible across OSes (Windows differs) #275 (comment/profile/plugin markup Hosted Maven rewriter edits commented-out, plugin and profile markup, so builds either stay unpatched or break #259, multi-module Hosted Maven mode edits only the root pom of a multi-module build, leaves child literals unpatched, and still attests VEX #261, classifier Hosted Maven rewriter ignores
<classifier> and suffixes sources/tests/native classifier dependencies, which breaks the build #262, repository order / mirrors Vendored Maven silently resolves the unpatched jar when an earlier <repository> or a mirrorOf * mirror serves the same GAV, and VEX still attests #263, crawler lists all of ~/.m2 Maven hosted scan pins, and VEX attests, artifacts the project doesn't depend on (the crawler lists all of ~/.m2) #265, no re-pin Hosted Maven never re-pins: a superseding patch uuid or a rotated grant token leaves the old wiring in place #266, CI matrix Maven CI matrix has no Windows leg, a stale 4.0 RC, and no legs at the resolver boundaries #267, no hosted revert Hosted Maven redirects cannot be reverted, and remove recommends an unscoped rollback that also fails #271, lowercased GAV Vendored Maven payload is written under the lowercased GAV, so mixed-case artifacts silently fall through to Central on case-sensitive file systems #272, CRLF Maven pom edits insert LF lines into CRLF pom.xml files (hosted and vendored) #273, plugin shadow Same-GAV Maven patches are shadowed when a build plugin depends on the same GAV in a reactor build #274).
- A UTF-8 BOM in an existing
.mvn/maven.config: Maven 3.9.11 and 4.0.0-rc-7 refuse the file themselves ("Unrecognized maven.config file entries"). Not caused by socket-patch.
- Reactor checkout path containing a comma:
maven.repo.local.tail splits, and Maven falls back to the socket-patch-vendor file repository (the jar is copied into m2, still the patched suffixed version). Degraded but fail-closed, not filed.
- Hosted
merge_checksums drops non-<sha> <path> lines (# comments) and re-sorts a user's checksums.sha256. Maven ignores those lines, so this is cosmetic and not filed.
- v5
vendor has no local artifact building: without a patch service it fails vendor_service_offline_conflict. Drive it through the harness fixture server (prebuilt_common::prepare_command), not a bare manifest + --offline.
- Vendored Maven reactor ignores profile <properties>, so a version an active profile raises is silently downgraded to the patched base (1.11.0 → 1.10.0-socket.*) with exit 0 and no warning #459 reverse case (top-level version ≠ base, active profile = base): unpatched but warned, and VEX refuses (
vendor_unwired). Recorded on Vendored Maven reactor ignores profile <properties>, so a version an active profile raises is silently downgraded to the patched base (1.11.0 → 1.10.0-socket.*) with exit 0 and no warning #459, not re-filed.
- Single-POM vendored + a BOM managing a different version: no downgrade (repository only). VEX lists the unused base version
not_affected, which is the Maven hosted scan pins, and VEX attests, artifacts the project doesn't depend on (the crawler lists all of ~/.m2) #265 family. Not filed.
- Hosted single-POM with a versionless dep + a BOM managing another version: the hosted dM insertion overrides the BOM (a downgrade), which Maven hosted scan pins, and VEX attests, artifacts the project doesn't depend on (the crawler lists all of
~/.m2) #265 already names. Don't re-file.
.mvn/maven.config --define k=v on one line: Maven 3.9.11 / 4.0.0-rc-7 reject it themselves ("Unrecognized option"). A quoted -Dk="v" fails the build on every Maven line. Not socket-patch.
- maven.config
-D k=v (separate tokens) is ignored by Maven 4.0.0-rc-7 itself, so the Vendored Maven reactor ignores user properties set in .mvn/maven.config as --define=k=v or -D k=v, so a 1.11.0 build is silently downgraded to 1.10.0-socket.* with no warning #535 cell is n/a on Maven 4.
# comment lines in .mvn/maven.config on Maven 3.6.3 / 3.8.8: Maven itself rejects them. Only 3.9+ / 4.x treat them as comments (Vendored Maven reactor reads -D properties from commented-out .mvn/maven.config lines, so a 1.11.0 build is silently downgraded to 1.10.0-socket.* (or a valid patch is refused) #550).
- Hosted
merge_mvn_config: a user's own trustedChecksums=false, checksumAlgorithms=SHA-512 or summaryFile.basedir elsewhere is left as is, with a redirect_maven_trusted_checksums_conflict warning. The suffixed version stays fail-closed, so this is warned behaviour, not filed.
- The JVM capstone's module
b uses the directory-form relativePath ../corp-parent, so any variant oracle hits vex and vendor --check refuse a correctly vendored Maven reactor whose <parent><relativePath> names a directory (../corp-parent or ..), with "is not a regular file" / "unsafe path" #534 in vendor --check / vex. Rewrite it to ../corp-parent/pom.xml first.
- Harness: in one test process, a second
vendor through prebuilt_common::prepare_command can fail vendor_prebuilt_required ("package response missing a result"). Run each fixture case in its own process.
cd <module> offline in a reactor whose module depends on an uninstalled sibling fails in Maven itself (the sibling isn't in the local repo). Pick a leaf module for cd oracles.
|
You must be logged in to vote
Comment options
-
Uh oh!
There was an error while loading. Please reload this page.
|
[agent] 2026-09-30: Maven bug-hunt run
Tested: main f6b7fb9 (socket-patch 4.0.0, the latest release), built with cargo build --release -p socket-patch-cli. Maven 3.6.3 / 3.8.8 / 3.9.11 / 4.0.0-rc-7 on Linux (JDK 21). Probe on ubuntu / macos / windows-latest (runner JDK 17) × Maven 3.6.3 / 3.9.11 / 4.0.0-rc-7. This is run 1, so the ledger was empty and there were no earlier bughunt + pm:maven issues to re-triage.
Filed
- Maven pom rewrites add a second <repositories> or <dependencyManagement> section when the existing one is self-closed or has a comment before <dependencies>, so Maven refuses the pom #342: hosted and vendored pom rewrites add a second
<repositories> / <dependencyManagement> when the existing one is self-closed, or has a comment between <dependencyManagement> and <dependencies>. Maven refuses the pom ("Duplicated tag") on every line, while the scan reports redirected/applied and vex attests not_affected. Reproduced on Linux (all 4 lines, twice), and on macOS + Windows (probe, vendored <repositories/>).
- Vendored Maven silently builds the unpatched jar when the project path contains a %XX sequence (e.g. a Jenkins "feature%2Fx" workspace), because file://${project.basedir} is not URI-encoded #350: vendored
file://${project.basedir}/… isn't URI-encoded, so a checkout path containing %XX (e.g. feature%2Fx) makes the vendored repo miss. Maven silently resolves Central's jar (exit 0, PRISTINE), and vex --offline attests. Reproduced on Linux, macOS and Windows × all tested Maven lines. ${project.baseUri} fixes it (verified on 3.9.11).
Commented
Cells covered
False positives ruled out
- A pristine jar in a reactor build turned out to come from
maven-dependency-plugin:3.6.1 depending on commons-text 1.10.0, i.e. the Same-GAV Maven patches are shadowed when a build plugin depends on the same GAV in a reactor build #274 plugin-realm shadow. Switched the oracle to plugin 3.1.2.
- A unicode path making Maven crash was the sandbox POSIX locale (
LC_ALL=C.UTF-8 fixes it).
- A one-off BUILD FAILURE on Maven 3.6.3 (hosted direct) was a proxy returning a non-XML body for the plugin pom. It passed on re-run.
Held (not filed yet)
- Vendored +
aether.checksums.algorithms=SHA-512|SHA-256 on Maven 3.9.x: the .sha1-only vendored repo is rejected under checksumPolicy=fail, and Central's pristine jar wins (exit 0). On 4.0.0-rc-7 the whole build fails on Central. 3.8.8's results were unclear. See backlog 1.
Probe: bughunt/maven/20260930-vendored-paths, runs https://github.com/SocketDev/socket-patch/actions/runs/36750538747 and https://github.com/SocketDev/socket-patch/actions/runs/36752468964. The branch couldn't be deleted (the git proxy hung up on push --delete), so a maintainer needs to delete it. Key probe details for recreating it:
- Build with
cargo build --release -p socket-patch-cli.
- Download Maven with
(cd "$ROOT/mvn" && curl -sSfL <url> | tar xz). tar -C D:\… fails in Git-bash on Windows.
- Invoke
mvn.cmd with shell=True on Windows.
- Stage the manifest with git-sha256 (
sha256("blob <len>\0" + bytes)) before/after hashes of META-INF/NOTICE.txt.
- Run
vendor --json --offline, delete the manifest + blobs, then copy-dependencies with a fresh localRepository, and grep the marker in target/dependency/*.jar.
Next
- Settle the checksum-algorithms candidate (backlog 1).
- Hosted cells on macOS / Windows.
- Windows vendored long paths + a CRLF checkout of the committed
.pom / .sha1 sidecars.
- Hosted BOM-import / classifier / exclusion-ordering shapes.
- An online
vex over Vendored Maven silently builds the unpatched jar when the project path contains a %XX sequence (e.g. a Jenkins "feature%2Fx" workspace), because file://${project.basedir} is not URI-encoded #350's fall-through.
|
You must be logged in to vote
0 replies
Comment options
-
Uh oh!
There was an error while loading. Please reload this page.
|
[agent] 2026-09-30: Maven bug-hunt run
Tested: main f6b7fb9 (socket-patch 4.0.0, the latest release; unchanged since run 1), built with cargo build --release -p socket-patch-cli. Linux only, JDK 21, Maven 3.6.3 / 3.8.8 / 3.9.11 / 4.0.0-rc-7. No probe branch this run. Maven Central returned HTTP 429 on and off for the whole run. That poisoned one seed local repo (a rate-limit body cached as a .pom) and blocked the hosted e2e warm-ups on 3.6.3 / 3.8.8.
Re-triage: #342 and #350 are still open. main hasn't moved since they were filed, so there's nothing to re-check.
Filed
Cells covered (Linux, 3.9.11 unless noted)
- fail Vendored Maven repo only ships .sha1 sidecars, so with aether.checksums.algorithms=SHA-256/SHA-512 Maven 3.8/3.9 silently build Central's unpatched jar (and Maven 4 fails the build) #394: vendored + SHA-256 / SHA-512-only checksums on 3.8.8 and 3.9.11 (build fails on 4.0.0-rc-7). pass: 3.6.3, and every line when
SHA-1 is in the list.
- pass: vendored re-run idempotent (byte-identical tree,
skipped: 1). vendor --revert byte-restores the pom, with and without the manifest (fresh checkout). remove <purl>, rollback and rollback <purl> unwire the pom and delete the vendored tree. repair leaves a healthy vendored project untouched.
- pass: hosted e2e capstone (
e2e_redirect_maven_build, wiremock stub) on 4.0.0-rc-7.
- blocked: the hosted e2e capstone on 3.6.3 (warm-up 429). On 3.8.8 one run failed at
e2e_redirect_maven_build.rs:437 (the re-signed-jar resolve that 3.8 is expected to pass), and the re-run died on a warm-up 429. The failure is most likely a Central 429 inside the resolve, but it's unconfirmed. Re-run it with a warm cache (backlog 1).
False positives ruled out
- The seed local repo held a rate-limit body cached as
maven-dependency-plugin-3.1.2.pom ("Non-parseable POM … Your…"). That's a Central 429 artifact, not socket-patch.
Probe: none this run. The stale branch bughunt/maven/20260930-vendored-paths still exists: git push --delete hung up again ("unexpected disconnect while reading sideband packet"). A maintainer needs to delete it.
Next
- Re-run the hosted capstone on 3.8.8 / 3.6.3 when Central isn't throttling. Confirm or rule out the 3.8.8 failure at line 437.
- Windows vendored long paths + a CRLF checkout of the committed
.pom / .sha1 sidecars (probe).
- Hosted cells on macOS / Windows (probe running
e2e_redirect_maven_build).
- Hosted BOM-import / exclusion-ordering shapes, and
-o offline on a fresh checkout.
- An online
vex over the Vendored Maven silently builds the unpatched jar when the project path contains a %XX sequence (e.g. a Jenkins "feature%2Fx" workspace), because file://${project.basedir} is not URI-encoded #350 / Vendored Maven repo only ships .sha1 sidecars, so with aether.checksums.algorithms=SHA-256/SHA-512 Maven 3.8/3.9 silently build Central's unpatched jar (and Maven 4 fails the build) #394 fall-throughs. Does the online path notice the live ~/.m2 mismatch, or only warn?
|
You must be logged in to vote
0 replies
Comment options
-
Uh oh!
There was an error while loading. Please reload this page.
|
[agent] 2026-10-01: maintainer note: test global (-g) mode for hosted patches
This is a maintainer request, not a run report. Add it to the top of the backlog and keep it there until the cells below are covered.
Ask: make sure we correctly scan global installs when -g / --global is passed, on every major Maven version and on Linux, macOS and Windows.
Where Maven puts global installs: The local repository (~/.m2/repository, settings.xml <localRepository>, MAVEN_REPO_LOCAL, -Dmaven.repo.local). Check that -g reports only what's actually there, and that hosted scans from a project don't list all of ~/.m2 (see #265).
What to check (prove each with a real global install, not by reading source):
socket-patch scan -g (no --mode) is report-only. It must find every globally installed Maven package that has a hosted patch: none missing, no project packages leaking in, correct versions. Also check --json.
scan -g run from inside a Maven project versus outside one: -g must scan only the global location, and a scan without -g must never touch it.
scan -g --mode hosted and scan --global-prefix <dir> --mode hosted must refuse loudly, as designed ("global installs have no project lockfile to redirect"). They must exit non-zero and write nothing.
get -g defaults to agent mode. Check scan -g --apply, apply -g, rollback -g and vex -g: the globally installed copy is actually patched (run the installed tool or import it), rollback restores it byte for byte, and vex only attests what's applied.
--global-prefix <dir> and SOCKET_GLOBAL=1 behave the same as -g. That covers custom prefixes, version managers, paths with spaces or unicode, and a non-root user's prefix.
- A global directory you can't write to (root-owned prefix, Windows Program Files) must fail loudly with a clear error, never exit 0 unpatched.
Add OS × Maven version cells for -g (scan report / apply / rollback) to the coverage matrix, and use probe branches for macOS and Windows.
|
You must be logged in to vote
0 replies
Comment options
-
Uh oh!
There was an error while loading. Please reload this page.
|
[agent] 2026-10-01: Maven bug-hunt run
Tested: main 2463257 (#277, the v5 consolidation; the binary still reports 4.0.0, and the latest release tag is 4.0.0), built with cargo build --release -p socket-patch-cli. Linux, JDK 21, Maven 3.6.3 / 3.8.8 / 3.9.11 / 4.0.0-rc-7. Probe run on ubuntu / macos / windows-latest × Maven 3.6.3 / 3.9.11 / 4.0.0-rc-7: https://github.com/SocketDev/socket-patch/actions/runs/36823986061. Central returned 429 again, which blocked the 3.6.3 / 3.8.8 reactor capstones.
Maintainer backlog item 0 (global -g mode): covered on all three OSes; results below.
Filed
- Maven global/agent discovery looks in $M2_HOME/repository and ignores settings.xml <localRepository>, so scan -g finds nothing and rollback -g drops the patch record while ~/.m2 stays patched #423: Maven's local repository is resolved as
$MAVEN_REPO_LOCAL → $M2_HOME/repository → ~/.m2/repository. settings.xml <localRepository> is ignored, and on Windows HOME wins over USERPROFILE. With any of these triggers, scan -g / agent scan report scannedPackages: 0 and exit 0, and rollback -g exits 0 package_not_installed, drops the manifest entry and GCs the blob while ~/.m2 stays patched. apply -g correctly exits 1. Reproduced on Linux / macOS / Windows × 3.6.3 / 3.9.11 / 4.0.0-rc-7 (probe), plus 3.8.8 on Linux. Not a v5 regression: 4.0.0 already behaves this way.
- scan/get --json drop the agent-mode apply failure: exit 1 with failed: 0, the patch shown as "added", and no error anywhere (e.g. a read-only global ~/.m2) #424:
scan --mode agent --json / get --json drop the nested apply failure: exit 1 and partial_failure, but failed: 0, the patch shows action: "added", and there's no error text (found with a read-only global ~/.m2 as user nobody). The human output and the standalone apply --json do report Permission denied. Code: get.rs:2469 keeps only a bool. Probably affects every ecosystem.
- Vendored Maven reactor with --maven-config=none can't build offline (mvn -o) on any Maven line, or from a module directory on Maven 3, because the fallback repo loses the offline-protocol line and the .mvn root marker #430: v5 reactor vendoring with
--maven-config=none writes no .mvn/, so a fresh checkout fails mvn -o (no aether.offline.protocols=file) on 3.9.11 and 4.0.0-rc-7. On 3.9.11, cd a / -f a/pom.xml also fail, because ${maven.multiModuleProjectDirectory} resolves to the module. The failure is loud, not silent. auto passes the same capstone.
Re-triage
Cells covered
-g checklist: (1) scan -g report-only: pass with the default location; fail Maven global/agent discovery looks in $M2_HOME/repository and ignores settings.xml <localRepository>, so scan -g finds nothing and rollback -g drops the patch record while ~/.m2 stays patched #423 with M2_HOME / <localRepository> / Windows HOME≠USERPROFILE. (3) scan -g --mode hosted, --global-prefix … --mode hosted and SOCKET_GLOBAL=1 --mode hosted: pass (exit 2, loud, nothing written). (4) scan -g --mode agent patches the real ~/.m2 pom, vex -g --offline attests only when the bytes are patched (omitted with not_applied and exit 1 on pristine bytes), online rollback -g byte-restores: pass. Offline rollback without the before-blob: loud exit 1, as documented. (5) SOCKET_GLOBAL=1 and --global-prefix: pass. (6) Read-only global dir: human output pass, JSON fail scan/get --json drop the agent-mode apply failure: exit 1 with failed: 0, the patch shown as "added", and no error anywhere (e.g. a read-only global ~/.m2) #424.
- v5 reactor capstone
e2e_vendor_jvm_build::maven_reactor (auto): pass on 3.9.11 and 4.0.0-rc-7; blocked by 429 on 3.6.3 / 3.8.8.
--maven-config=none: -f root/pom.xml from outside: pass. -o / module invocation: fail Vendored Maven reactor with --maven-config=none can't build offline (mvn -o) on any Maven line, or from a module directory on Maven 3, because the fallback repo loses the offline-protocol line and the .mvn root marker #430.
False positives ruled out
- Manual
none runs on 3.8.8 / 4.0.0-rc-7 against the 3.9.11-warmed local repo failed on missing plugins: an environment artifact, discarded. Only harness cells (warmed per version) were counted.
- On Linux, Java's
user.home comes from passwd, not $HOME. Sandbox repros must pass -Duser.home to Maven along with the HOME override.
Probe branches: git push needs verified (signed) commits. Commits using the environment's default git identity are signed; overriding user.email makes the push fail with GH013. Commits through the GitHub contents API are refused too. git push --delete still hangs up, so bughunt/maven/20260930-vendored-paths and bughunt/maven/20261001-global-repo both need deleting by a maintainer.
Next
- Re-run the reactor capstone (auto +
none) on 3.6.3 / 3.8.8 once Central stops throttling. That covers the fallback-repo path, which is the only one older Maven uses.
- Reactor backend edge cases:
%XX / comma / space checkout paths (the comma splits maven.repo.local.tail), and an existing user .mvn/maven.config with CRLF or a BOM.
- Vendored Maven repo only ships .sha1 sidecars, so with aether.checksums.algorithms=SHA-256/SHA-512 Maven 3.8/3.9 silently build Central's unpatched jar (and Maven 4 fails the build) #394 re-check on v5: the reactor tree still ships
.sha1 only. Does aether.checksums.algorithms=SHA-256 break the suffixed resolve, and is it loud?
- Hosted-mode re-runs of Maven pom rewrites add a second <repositories> or <dependencyManagement> section when the existing one is self-closed or has a comment before <dependencies>, so Maven refuses the pom #342 for the vendored single-POM side, and the hosted capstone on 3.6.3 / 3.8.8 (old backlog item 2).
- Windows long paths and a CRLF checkout of the
.socket/vendor/maven2 tree (the new .gitattributes * -text should cover it; verify).
|
You must be logged in to vote
0 replies
Comment options
-
Uh oh!
There was an error while loading. Please reload this page.
|
[agent] 2026-10-01: Maven bug-hunt run
Tested: main 2463257 (unchanged since the last run; latest release 4.0.0), built with cargo build --release -p socket-patch-cli. Linux, JDK 21, Maven 3.9.11 and 4.0.0-rc-7. Maven 3.6.3 / 3.8.8 were installed, but Central returned 429 during the fixture warm-up, so those cells are blocked. No probe branch this run: today's cells are pure planner logic with no OS dependence, and the two stale probe branches still can't be deleted from the sandbox.
Filed
Commented
Re-triage: main is unchanged since run 3, so #430 / #423 / #424 / #350 / #342 still hold. No re-runs beyond #394.
Cells covered (reactor capstone variant e2e_vendor_jvm_build::maven_reactor with a parameterized checkout path and a pre-existing .mvn/maven.config; checks: vendor, fresh-checkout offline build from the root and from cd a, byte-exact revert)
- 3.9.11, checkout path containing
a,b dir (comma + space): pass. The comma splits maven.repo.local.tail, so resolution falls back to the file repository, which copies the jar into m2. The jar is still patched, because the suffixed version fails closed.
- 3.9.11, checkout path
feature%2Fx: pass (resolved from the tail; Vendored Maven silently builds the unpatched jar when the project path contains a %XX sequence (e.g. a Jenkins "feature%2Fx" workspace), because file://${project.basedir} is not URI-encoded #350 doesn't apply to the reactor backend).
- 3.9.11, existing
maven.config: CRLF (-ntp, -Dfoo=bar): pass (CRLF kept on the appended lines). No trailing newline: pass. User -Dmaven.repo.local.tail=/nonexistent: pass (our directory appended to the list). -Daether.checksums.algorithms=SHA-256: pass.
- 4.0.0-rc-7,
-Daether.checksums.algorithms=SHA-256: pass.
- Profile-overridden property (Vendored Maven reactor ignores profile <properties>, so a version an active profile raises is silently downgraded to the patched base (1.11.0 → 1.10.0-socket.*) with exit 0 and no warning #459): fail on 3.9.11 and 4.0.0-rc-7; blocked on 3.6.3 / 3.8.8 (429).
False positives ruled out
- A UTF-8 BOM at the start of an existing
.mvn/maven.config: Maven 3.9.11 and 4.0.0-rc-7 themselves refuse the file ("Unrecognized maven.config file entries: [-ntp]"), so the project is already broken before vendoring. Not a socket-patch bug.
- Hosted
merge_checksums drops non-<sha> <path> lines (for example # comments) and re-sorts a user's existing .mvn/checksums/checksums.sha256, and rollback doesn't restore them. Maven ignores those lines, so the effect is cosmetic. Recorded here, not filed.
Probe branches: git push --delete still hangs up ("unexpected disconnect while reading sideband packet"). bughunt/maven/20260930-vendored-paths and bughunt/maven/20261001-global-repo still need deleting by a maintainer.
Next
- Reactor capstones on 3.6.3 / 3.8.8 (fallback-repo-only path) once Central stops throttling. Warm the m2 in a separate early step and reuse it.
- Vendored Maven reactor ignores profile <properties>, so a version an active profile raises is silently downgraded to the patched base (1.11.0 → 1.10.0-socket.*) with exit 0 and no warning #459 reverse case and siblings: top-level 1.11.0 with an active profile setting 1.10.0 (the effective build stays vulnerable; check that the warning is honest), and profile
<dependencies> literals versus a top-level declaration.
- The
-g agent apply / rollback / vex and read-only global dir cells on macOS / Windows (maintainer item 0; needs a probe branch).
- Hosted: BOM
import scope, -o on a fresh checkout, and a pre-existing user .mvn/maven.config plus checksums.sha256 round trip (rollback warning maven_trusted_checksums_left).
- Windows long paths and a CRLF checkout of
.socket/vendor/maven2 (* -text).
|
You must be logged in to vote
0 replies
Comment options
-
Uh oh!
There was an error while loading. Please reload this page.
|
[agent] 2026-10-01: Maven bug-hunt run
Tested: main c7af4df (latest release 4.0.0), built with cargo build --release -p socket-patch-cli. Linux, JDK 21, Maven 3.6.3 / 3.8.8 / 3.9.3 / 3.9.4 / 3.9.11 / 4.0.0-rc-7. Since run 4, main changed one Maven path: b1eb2ae (#258), the redirect_maven_trusted_checksums_unenforced warning keyed on .mvn/wrapper/maven-wrapper.properties. The vendor/jvm code is unchanged. No probe branch: today's cells are planner logic with no OS dependence.
Filed
Commented
Re-triage: the vendor/jvm and agent/global code is unchanged since run 4, so #459 / #430 / #423 / #424 / #394 / #350 / #342 still stand (not re-run).
Cells covered (local uncommitted variant of e2e_vendor_jvm_build::maven_reactor, with fixture POMs swapped, a fresh-checkout -o build and the classpath oracle)
- Hosted capstone
e2e_redirect_maven_build (Hosted Maven Trusted Checksums are silently inert on Maven 3.9.0–3.9.3 (docs and the test gate claim ≥3.9 enforces) #258 boundary: the unenforced-pin warning matches tamper enforcement): 3.9.3 pass, 3.9.4 pass, 4.0.0-rc-7 pass.
- Reactor + BOM import managing 1.10.0 (versionless module dep): 3.9.11 pass, 4.0.0-rc-7 pass (patched jar, VEX honest).
- Reactor + BOM import managing 1.11.0: 3.9.11 / 4.0.0-rc-7 fail Vendored Maven reactor pins over an imported BOM or external parent, so a build that uses 1.11.0 is silently downgraded to 1.10.0-socket.* and a later BOM bump never takes effect #488.
- Reactor + external parent managing 1.11.0: 3.9.11 / 4.0.0-rc-7 fail Vendored Maven reactor pins over an imported BOM or external parent, so a build that uses 1.11.0 is silently downgraded to 1.10.0-socket.* and a later BOM bump never takes effect #488.
- Reactor, BOM bumped 1.10.0 → 1.11.0 after vendoring, then re-vendor: 3.9.11 / 4.0.0-rc-7 fail Vendored Maven reactor pins over an imported BOM or external parent, so a build that uses 1.11.0 is silently downgraded to 1.10.0-socket.* and a later BOM bump never takes effect #488.
- Reactor, Vendored Maven reactor ignores profile <properties>, so a version an active profile raises is silently downgraded to the patched base (1.11.0 → 1.10.0-socket.*) with exit 0 and no warning #459 reverse (top-level 1.11.0, profile 1.10.0): 3.9.11 degraded: unpatched, warned, VEX refuses (commented on Vendored Maven reactor ignores profile <properties>, so a version an active profile raises is silently downgraded to the patched base (1.11.0 → 1.10.0-socket.*) with exit 0 and no warning #459).
- Single-POM + BOM import managing 1.11.0: 3.9.11 / 4.0.0-rc-7: no downgrade (repository only, the build keeps 1.11.0). VEX still lists [email protected]
not_affected for a version the build doesn't contain. Not filed (same family as Maven hosted scan pins, and VEX attests, artifacts the project doesn't depend on (the crawler lists all of ~/.m2) #265).
- 3.6.3 / 3.8.8: blocked, Central 429 during the harness warm-up (non-parseable
maven-resources-plugin-2.6.pom, transfer failed).
False positives ruled out
- v5
vendor without a patch service fails vendor_service_offline_conflict ("local artifact building is no longer supported"). Use the harness's prebuilt_common::prepare_command fixture server, not a bare manifest + --offline.
Probe branches: git push --delete for the two stale branches was denied this run by the session's permission policy. bughunt/maven/20260930-vendored-paths and bughunt/maven/20261001-global-repo still need deleting by a maintainer.
Next
- Reactor capstones and the Vendored Maven reactor ignores profile <properties>, so a version an active profile raises is silently downgraded to the patched base (1.11.0 → 1.10.0-socket.*) with exit 0 and no warning #459 / Vendored Maven reactor pins over an imported BOM or external parent, so a build that uses 1.11.0 is silently downgraded to 1.10.0-socket.* and a later BOM bump never takes effect #488 fixtures on 3.6.3 / 3.8.8 once Central stops throttling.
- Hosted single-POM + BOM import managing a different version (does the hosted dM insertion downgrade the same way, or does Maven hosted scan pins, and VEX attests, artifacts the project doesn't depend on (the crawler lists all of
~/.m2) #265 cover it?), plus hosted -o on a fresh checkout.
- Vendored Maven reactor pins over an imported BOM or external parent, so a build that uses 1.11.0 is silently downgraded to 1.10.0-socket.* and a later BOM bump never takes effect #488 sibling:
spring-boot-starter-parent-style parent plus a ${...version} property override in the reactor root (does the planner read the external parent's properties?).
- The
-g agent apply / rollback / vex and read-only global dir cells on macOS / Windows (maintainer item 0; needs a probe branch).
- Windows long paths and a CRLF checkout of
.socket/vendor/maven2 (* -text).
|
You must be logged in to vote
0 replies
Comment options
-
Uh oh!
There was an error while loading. Please reload this page.
|
[agent] 2026-10-01: Maven bug-hunt run
Tested: main 61cfb9b (latest release 4.0.0), built with cargo build --release -p socket-patch-cli. Linux, JDK 21, Maven 3.6.3 / 3.8.8 / 3.9.11 / 4.0.0-rc-7 (4.0.0-rc-7 is still the newest Maven 4 on Central). Since run 5, the Maven-relevant changes on main are #446 (-g leaves the project's hosted/vendored state alone) and #456 (agent scan/get re-apply recorded patches). The vendor/jvm planner and the Maven crawler are unchanged. Central throttling was worked around with a local caching mirror (mirrorOf central → a 127.0.0.1 Python cache) for the variant fixtures.
Filed
Commented
Re-triage
Cells covered
- Hosted capstone
e2e_redirect_maven_build: 3.6.3 pass, 3.8.8 pass.
- Reactor capstone
e2e_vendor_jvm_build::maven_reactor (auto): 3.6.3 pass; 3.8.8 blocked (Central 429 in the harness warm-up, which has no mirror hook).
- Single-POM capstone
e2e_vendor_maven_build: 3.6.3 / 3.8.8 blocked (429 in warm-up).
- Vendored Maven reactor pins over an imported BOM or external parent, so a build that uses 1.11.0 is silently downgraded to 1.10.0-socket.* and a later BOM bump never takes effect #488 fixtures (BOM ≠ base, external parent ≠ base, property override): 3.6.3 / 3.8.8 / 4.0.0-rc-7 fail Vendored Maven reactor pins over an imported BOM or external parent, so a build that uses 1.11.0 is silently downgraded to 1.10.0-socket.* and a later BOM bump never takes effect #488, 3.9.11 fail Vendored Maven reactor pins over an imported BOM or external parent, so a build that uses 1.11.0 is silently downgraded to 1.10.0-socket.* and a later BOM bump never takes effect #488.
- External-parent
${prop} = base: 3.6.3 / 3.8.8 / 3.9.11 / 4.0.0-rc-7 fail Vendored Maven reactor reports applied and VEX attests not_affected when a ${property} version is left unresolved, so the build keeps Central's unpatched jar (also triggered by Maven 4 <parent/> inference) #513.
- Maven 4.1.0
<parent/> + root ${prop}: 4.0.0-rc-7 fail Vendored Maven reactor reports applied and VEX attests not_affected when a ${property} version is left unresolved, so the build keeps Central's unpatched jar (also triggered by Maven 4 <parent/> inference) #513. 4.1.0 <parent/> + literal 1.10.0: pass. 4.1.0 <parent/> + versionless with root dM: pass.
False positives ruled out
- Hosted single-POM + BOM import managing another version: when the pom has no literal, the hosted dM insertion overriding the BOM is already named in Maven hosted scan pins, and VEX attests, artifacts the project doesn't depend on (the crawler lists all of
~/.m2) #265 ("a depMgmt pin is not inert … forces it down"). Not filed.
- Hosted
.mvn/maven.config merge and rollback (restore_mvn): a pre-existing user config or checksums file is kept and only the hosted lines are dropped, and the maven_trusted_checksums_left warning fires only when the resolver lines stay. No defect found by reading; not run end to end.
Probe branches: none pushed. git push --delete was again denied by the session permission policy, so I couldn't have cleaned up a new probe branch. bughunt/maven/20260930-vendored-paths and bughunt/maven/20261001-global-repo still need deleting by a maintainer.
Next
-g agent apply / rollback / vex and the read-only global dir on macOS / Windows (maintainer item 0). This needs a probe branch, which in turn needs branch deletion to work, or a maintainer OK to leave probe branches behind.
- Reactor (auto) and single-POM capstones on 3.8.8 once Central stops throttling (the harness has no mirror hook; a local variant with a
mirrorOf central settings file works).
- Hosted: a pre-existing
.mvn/maven.config with a user summaryFile.basedir or checksumAlgorithms=SHA-512 (does the conflict warning say the pin is unenforced?), plus a rollback round trip with a user checksums.sha256, end to end.
- Other Maven 4.1.0 model features against the reactor planner: CI-friendly
${revision} parents, a parent with only <relativePath>, and <subprojects> discovered implicitly.
- Windows long paths and a CRLF checkout of
.socket/vendor/maven2 (* -text).
|
You must be logged in to vote
0 replies
Comment options
-
Uh oh!
There was an error while loading. Please reload this page.
|
[agent] 2026-10-02: Maven bug-hunt run
Tested: main 61cfb9b (unchanged since run 6; latest release 4.0.0), built with cargo build --release -p socket-patch-cli. Linux, JDK 21, Maven 3.6.3 / 3.8.8 / 3.9.11 / 4.0.0-rc-7 (still the newest Maven 4 on Central). The oracles were local, uncommitted variants of e2e_vendor_jvm_build::maven_reactor (real mvn package + dependency:3.5.0:build-classpath, then vex and vendor --check). Central 429s were worked around with a local caching mirror (mirrorOf central → 127.0.0.1).
Filed
Re-triage
Cells covered (Linux)
False positives ruled out
--define ct.version=1.11.0 on one maven.config line: 3.9.11 / 4.0.0-rc-7 reject it themselves ("Unrecognized option"). Not socket-patch.
-Dct.version="1.11.0" (quoted) in maven.config: every Maven line fails the build itself. Not socket-patch.
Probe branches: none pushed, because git push --delete has been denied in earlier runs. bughunt/maven/20260930-vendored-paths and bughunt/maven/20261001-global-repo still need deleting by a maintainer.
Next
-g agent apply / rollback / vex and the read-only global dir on macOS / Windows (maintainer item 0, blocked on probe-branch deletion).
- Other
.mvn user-property sources the planner may miss: MAVEN_ARGS (Maven 4), maven.config comment lines (#) on Maven 4, a .mvn/maven.config reached from a module dir.
- Hosted: a pre-existing
.mvn/maven.config with a user summaryFile.basedir / checksumAlgorithms=SHA-512, plus a rollback round trip with a user checksums.sha256, end to end.
- Maven 4.1.0 model features against the reactor planner: CI-friendly
${revision} parents, implicit <subprojects>.
- Reactor / single-POM capstones on 3.8.8 through the caching mirror (the harness warm-up has no mirror hook; local variant only).
|
You must be logged in to vote
0 replies
Comment options
-
Uh oh!
There was an error while loading. Please reload this page.
|
[agent] 2026-10-02: Maven bug-hunt run
Tested: main 61cfb9b (unchanged since run 6; latest release v4.0.0), built with cargo build --release -p socket-patch-cli. Linux, JDK 21, Maven 3.6.3 / 3.8.8 / 3.9.11 / 3.9.16 (the newest 3.9, new to the matrix) / 4.0.0-rc-7 (still the newest Maven 4). The oracles were a local, uncommitted variant of e2e_vendor_jvm_build::maven_reactor (real mvn package + dependency:3.5.0:build-classpath before and after vendor, then vendor --check and vex --output), plus the stock capstones.
Filed
Re-triage
- Main is unchanged since run 6 (
61cfb9b), and no PR touches the Maven backend, so every open pm:maven bughunt issue stands. No re-run was needed.
Cells covered (Linux)
False positives ruled out
Probe branches: none pushed (deleting a probe branch was denied in earlier runs). bughunt/maven/20260930-vendored-paths and bughunt/maven/20261001-global-repo still need deleting by a maintainer.
Next
-g agent apply / rollback / vex and the read-only global dir on macOS / Windows (maintainer item 0, blocked on probe-branch deletion).
- Hosted: a pre-existing
.mvn/maven.config with a user summaryFile.basedir / checksumAlgorithms=SHA-512, plus a rollback round trip with a user checksums.sha256.
- Maven 4.1.0 model features against the reactor planner: CI-friendly
${revision} parents, implicit <subprojects>.
- Reactor / single-POM capstones on 3.8.8 and single-POM on 3.6.3 through a caching mirror.
- The v4.0.0-era cells on 3.9.16 (hosted re-run idempotency,
%XX path, <repositories/>).
|
You must be logged in to vote
0 replies
Comment options
-
Uh oh!
There was an error while loading. Please reload this page.
|
[agent] 2026-10-02: Maven bug-hunt run
Tested: main bf0e0d1 (21 commits past 61cfb9b; none of them touch vendor/jvm, vex/discover/maven.rs or the Maven parts of patch/redirect; latest release v4.0.0), built with cargo build --release -p socket-patch-cli. Linux, JDK 21, Maven 3.8.8 / 3.9.16 / 4.0.0-rc-7. Central has published no new Maven release (3.9.16 and 4.0.0-rc-7 are still the newest). The oracle was a local, uncommitted variant of e2e_vendor_jvm_build::maven_reactor (real mvn package + dependency:3.5.0:build-classpath from a fresh checkout with commons-text purged), resolving Central through a localhost caching mirror.
Filed
Re-triage
Cells covered (Linux)
False positives ruled out
- None new. Reviewed the hosted
merge_mvn_config / restore_mvn paths (a user's own summaryFile.basedir / checksumAlgorithms / trustedChecksums=false → redirect_maven_trusted_checksums_conflict warning, left as is). It's warned behaviour, and the suffixed version stays fail-closed, so I didn't file it.
Probe branches: none pushed (deleting a probe branch has been denied in earlier runs). bughunt/maven/20260930-vendored-paths and bughunt/maven/20261001-global-repo still need deleting by a maintainer.
Next
-g agent apply / rollback / vex and the read-only global dir on macOS / Windows (maintainer item 0, blocked on probe-branch deletion).
- Vendored Maven reactor vex attests not_affected after a module added later declares the base version, although vendor --check flags the drift and that module builds Central's unpatched jar #584 siblings: a literal base added to an existing module (
b), and a module whose <parent> isn't the pinned root (a second local root), each through vex vs vendor --check.
- Hosted end to end: a user
.mvn/maven.config with failIfMissing=true plus their own checksums.sha256, then a rollback round trip.
- Maven 4.1.0 CI-friendly
${revision} parents vs the reactor planner.
- Single-POM vendored capstone on 3.6.3 / 3.8.8 through the caching mirror.
|
You must be logged in to vote
0 replies
Comment options
-
Uh oh!
There was an error while loading. Please reload this page.
|
[agent] 2026-10-02: handover from the Gradle bug-hunt routine (vendored jars vs project .gitignore)
I filed this for Gradle as #620 (#620). The vendored Maven tree probably has the same gap, but I didn't test it, because Maven is outside my package manager.
Gradle evidence (main 045d7ec, Linux, Gradle 8.14.3 and 9.8.0): the project's .gitignore has *.jar (github/gitignore Java template). vendor and vendor --check both exit 0 with no warning. git status --ignored shows !! .socket/vendor/gradle/…/commons-text-1.10.0.jar. git add .socket skips the jar without saying so, and a fresh clone's build fails with "vendored file missing".
Why Maven is likely affected: npm and vlt run npm_dir::gitignore_probe and refuse with vendor_artifact_gitignored (npm_dir.rs:673, vlt_lock.rs:764). The JVM path (vendor/jvm/mod.rs:439 → apply.rs:269 write_plan) has no probe, and .socket/vendor/maven2/ only gets a .gitattributes (apply.rs:939). Suggested check: a reactor with *.jar in .gitignore, then vendor, commit, fresh clone, and mvn -o package.
|
You must be logged in to vote
0 replies
Comment options
-
Uh oh!
There was an error while loading. Please reload this page.
|
[agent] 2026-10-02: Maven bug-hunt run
Tested: main 045d7ec (14 commits past bf0e0d1; the Maven-relevant one is 3757e27 (#517), where agent vex now checks every installed copy; latest release v4.0.0), built with cargo build --release -p socket-patch-cli. Linux, JDK 21, Maven 3.6.3 / 3.8.8 / 3.9.0 / 3.9.1 / 3.9.2 / 3.9.16 / 4.0.0-rc-7. Central has published no new Maven release (3.9.16 and 4.0.0-rc-7 are still the newest). The oracles were the stock e2e_vendor_jvm_build::maven_reactor capstone, plus local, uncommitted variants of it (real vendor --offline via the prebuilt fixture server, then mvn package + dependency:3.5.0:build-classpath, with the jar's NOTICE marker checked).
Filed
Commented
Re-triage
Cells covered (Linux)
False positives ruled out
Probe branches: none pushed (deleting a probe branch has been denied in earlier runs). bughunt/maven/20260930-vendored-paths and bughunt/maven/20261001-global-repo still need deleting by a maintainer.
Next
-g agent apply / rollback / vex and the read-only global dir on macOS / Windows (maintainer item 0, blocked on probe-branch deletion).
- Vendored Maven 4 reactor with implicit subprojects (model 4.1.0, no <subprojects>) is wired as a single POM, so a warm ~/.m2 builds the unpatched jar while vex attests not_affected #622 follow-ups:
scan --mode vendored / get on the implicit-subproject layout; a Maven 4 implicit layout with a nested aggregator.
- Hosted end to end: a user
.mvn/maven.config with failIfMissing=true plus their own checksums.sha256, then a rollback round trip.
${revision} and single-POM capstones on 3.6.3 / 3.8.8 through a caching mirror (429s).
-D values containing ${...} in maven.config (Maven 4 interpolation) vs the reactor planner.
|
You must be logged in to vote
0 replies
Comment options
-
Uh oh!
There was an error while loading. Please reload this page.
|
[agent] 2026-10-03: Maven bug-hunt run
Tested: main 045d7ec (unchanged since run 10; latest release v4.0.0), built with cargo build --release -p socket-patch-cli. Linux, JDK 21, Maven 3.6.3 / 3.9.11 / 3.9.16 / 4.0.0-rc-7. The oracle was the stock e2e_vendor_jvm_build::maven_reactor capstone (pass on 3.9.11), plus a local, uncommitted variant of it: a real vendor --offline through the prebuilt fixture server, vendor --check, vex, then a fresh checkout with commons-text purged from m2, built with mvn -o and online package + dependency:3.5.0:build-classpath, with the jar's NOTICE marker checked per module.
Filed
Re-triage
Cells covered (Linux)
False positives ruled out
Probe branches: none (deletion is still denied). bughunt/maven/20260930-vendored-paths and bughunt/maven/20261001-global-repo still need deleting by a maintainer.
Next
- Vendored Maven reactor skips a dependency whose groupId or artifactId is a ${property}, so that module builds Central's unpatched jar while vendor, vendor --check and vex all report it patched #655 siblings: a
${prop} groupId in the root dependencyManagement; ${project.groupId}-style values; the single-POM vendored backend (vendor/maven_repo.rs) and hosted mode with a property groupId.
- Vendored Maven 4 reactor with implicit subprojects (model 4.1.0, no <subprojects>) is wired as a single POM, so a warm ~/.m2 builds the unpatched jar while vex attests not_affected #622 follow-ups:
scan / get --mode vendored on implicit subprojects; a nested aggregator.
- Hosted end to end: a user
.mvn/maven.config with failIfMissing=true plus their own checksums.sha256, then a rollback round trip.
-D values containing ${...} in maven.config (Maven 4 interpolation) vs the reactor planner.
-g agent apply / rollback / vex on macOS / Windows (blocked on probe-branch deletion).
|
You must be logged in to vote
0 replies
Comment options
-
Uh oh!
There was an error while loading. Please reload this page.
|
[agent] 2026-10-03: Maven bug-hunt run
Tested: main 045d7ec (unchanged since run 10; latest release v4.0.0), built with cargo build --release -p socket-patch-cli. Linux, JDK 21, Maven 3.6.3 / 3.9.11 / 3.9.16 / 4.0.0-rc-7. The oracle was a local, uncommitted variant of the e2e_redirect_maven_build hosted capstone: the warmed pom.xml is rewritten before scan --mode hosted --vex, then a fresh checkout with the fixture purged runs copy-dependencies through the socket-repo mirror (the NOTICE marker is checked), followed by a standalone vex on the fresh checkout.
Filed
Re-triage
- main hasn't moved since run 10 (
045d7ec), so there's no code change to re-check against the open issues. Not re-run.
Cells covered (Linux, hosted)
False positives ruled out
- The single-POM vendored backend (
maven_repo.rs) with a ${prop} groupId wasn't run as a separate cell: that backend only injects a <repository> serving the base GAV and never matches declarations, so Maven's own interpolation reaches it. Marked low-yield, not tested.
Probe branches: none (deletion is still denied). bughunt/maven/20260930-vendored-paths and bughunt/maven/20261001-global-repo still need deleting by a maintainer.
Next
- Hosted Maven adds a dependencyManagement pin that the direct literal overrides when the dependency's groupId/artifactId is a ${property} or <exclusions> come first, so the build stays unpatched while scan reports redirected and VEX attests not_affected #683 siblings:
${project.groupId} in hosted; a <dependency> with <type> / <classifier> written before the groupId; rollback / re-run after the shadowed dM pin.
- Vendored Maven 4 reactor with implicit subprojects (model 4.1.0, no <subprojects>) is wired as a single POM, so a warm ~/.m2 builds the unpatched jar while vex attests not_affected #622 follow-ups:
scan / get --mode vendored on implicit subprojects; a nested aggregator.
- Hosted end to end: a user
.mvn/maven.config with failIfMissing=true plus their own checksums.sha256, then a rollback round trip.
-D values containing ${...} in maven.config (Maven 4 interpolation) vs the reactor planner.
-g agent apply / rollback / vex on macOS / Windows (blocked on probe-branch deletion).
|
You must be logged in to vote
0 replies
Comment options
-
Uh oh!
There was an error while loading. Please reload this page.
|
[agent] Janitor: ledger drift. This ledger still lists these issues as fail or open, but each was closed as completed by a PR merged on 2026-10-07: #424 (PR #955). Please re-verify them on main db83f014 and update the cells.
Generated by Claude Code
|
You must be logged in to vote
0 replies
Comment options
-
Uh oh!
There was an error while loading. Please reload this page.
|
[agent] Janitor: ledger drift. These issues are now closed but this ledger still lists them as fail or open: #342 (completed 2026-10-10), #488 (completed 2026-10-09), #620 (not planned 2026-10-09). Please re-verify them on current main and update the matrix.
Generated by Claude Code
|
You must be logged in to vote
0 replies
Comment options
-
Uh oh!
There was an error while loading. Please reload this page.
|
[agent] Janitor: ledger drift. #350 was closed 2026-10-28 06:41Z (the pre-v5 single-POM file://${project.basedir}/.socket/vendor/maven/<uuid> writer is retired on main b787454; see the closing comment on #350), but the run matrix still lists it as fail #350 (the 3.9.11 row and the Linux 3.6.3 / 3.8.8 / 3.9.11 / 4.0.0-rc-7, macOS and Windows rows).
Generated by Claude Code
|
You must be logged in to vote
0 replies
Comment options
-
Uh oh!
There was an error while loading. Please reload this page.
|
[agent] Janitor: ledger drift on main b4b6d98f. These issues are closed but still listed as fail: #535 and #550 (closed 14:16Z, fixed by #1754 a8a10dc6, maven.config user property parsing) in the maven.config rows, and #655 (closed 14:13Z, fixed by #1773 a4ebd054, reactor ${prop} groupId/artifactId) in the 3.6.3 / 3.9.11 / 3.9.16 / 4.0.0-rc-7 rows. The ledger body hasn't been rewritten since run 12 (2026-10-03).
Generated by Claude Code
|
You must be logged in to vote
0 replies
Comment options
-
Uh oh!
There was an error while loading. Please reload this page.
|
[agent] Janitor: ledger drift on main ecd4924e. These issues are closed but still listed as fail: #534 (closed 2026-10-28 21:25Z, fixed by #1789 d5f5600e, parent relativePath naming a directory) in the 3.6.3 / 3.8.8 / 3.9.11 rows; #459 (closed 21:26Z, fixed by #1787 a9d2312e, profile <properties>) in the 3.9.11 / 4.0.0-rc-7 rows; and #394 (closed 23:24Z by a maintainer: the pre-v5 single-POM backend it covers no longer exists) in the 3.8.8 / 3.9.11 / 4.0.0-rc-7 rows. #513 stays open: #1787 only partly fixes it (vendor still reports applied when nothing is wired).
Generated by Claude Code
|
You must be logged in to vote
0 replies
Comment options
-
Uh oh!
There was an error while loading. Please reload this page.
|
[agent] Janitor: ledger drift. #683 was closed as completed at 2026-10-29 13:31Z by #1788 (21911cf: hosted Maven resolves ${property} groupId/artifactId before pinning), but the 3.6.3, 3.9.11, 3.9.16 and 4.0.0-rc-7 rows still mark fail #683.
Generated by Claude Code
|
You must be logged in to vote
0 replies
Comment options
-
Uh oh!
There was an error while loading. Please reload this page.
|
[agent] Janitor: ledger drift on main c07af61. These issues are closed but still listed as fail:
- Vendored Maven 4 reactor with implicit subprojects (model 4.1.0, no <subprojects>) is wired as a single POM, so a warm ~/.m2 builds the unpatched jar while vex attests not_affected #622: closed 2026-10-29 13:40Z by Fix Maven 4 implicit subprojects in vendor (#622) #1807 (
8ae6c83, Maven 4 implicit subprojects in vendor). See the 4.0.0-rc-7 row and to-do 2b.
- Vendored Maven reactor vex attests not_affected after a module added later declares the base version, although vendor --check flags the drift and that module builds Central's unpatched jar #584: closed 14:07Z by Fix Maven reactor VEX over a base-version module (#584) #1802 (
b291caa, reactor VEX over a base-version module). See the 3.8.8, 3.9.16 and 4.0.0-rc-7 rows.
- Vendored Maven reactor reports applied and VEX attests not_affected when a ${property} version is left unresolved, so the build keeps Central's unpatched jar (also triggered by Maven 4 <parent/> inference) #513: closed 15:04Z by Fix Maven vendor reporting unwired patch applied (#513) #1826 (
c07af61, vendor no longer reports an unwired patch as applied). See the 3.6.3, 3.8.8 and 3.9.11 rows.
- Maven global/agent discovery looks in $M2_HOME/repository and ignores settings.xml <localRepository>, so scan -g finds nothing and rollback -g drops the patch record while ~/.m2 stays patched #423: closed 13:40Z by Fix Maven local repository lookup (#423) #1801 (
ca6dc05, Maven local repository lookup). See the Linux, macOS and Windows global/agent rows.
Generated by Claude Code
|
You must be logged in to vote
0 replies
|