build: drop the unreachable snapshot repository and pin p2 to its origin - #1894
Draft
wenytang-ms wants to merge 1 commit into
Draft
build: drop the unreachable snapshot repository and pin p2 to its origin#1894wenytang-ms wants to merge 1 commit into
wenytang-ms wants to merge 1 commit into
Conversation
The oss.sonatype.org entry declares a snapshots repository, but every
artifact resolved against it carries a release version, so a request to
it can only ever 404. The last nightly build (31824861) issued 196 such
requests and completed none of them:
Downloading from oss.sonatype.org: 196
Downloaded from oss.sonatype.org: 0
Maven fell back to Central for all of them, so removing the entry does
not change which artifacts are resolved. It does remove an external host
from the build and saves 196 failed round trips.
download.eclipse.org answers p2 requests with a redirect to a mirror
chosen per request from a pool of third party hosts. Because the target
definition references /eclipse/updates/4.38/ and /releases/2025-12/,
which are mirrored, that same build read most of its bundles from eight
hosts none of the repository declares:
mirror.cs.odu.edu, ftp2.osuosl.org, mirror.umd.edu,
eclipse.mirror.rafal.ca, mirrors.xmission.com, mirrors.dotsrc.org,
ca.mirrors.cicku.me, eclipse.c3sl.ufpr.br
The selection is made per request, so the host set differs between runs
and cannot be enumerated ahead of time. eclipse.p2.mirrors=false makes
p2 read from the URL in the target definition instead, so the set of
addresses the build contacts is the set it declares.
Both changes narrow the addresses the pipeline reaches without changing
the artifacts it produces. This is groundwork for routing the remaining
Maven Central traffic through the Central Feed Service: an allow list or
an exception request can only be written against a host set that is
known in advance.
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.
Part of the remediation for ICM 840100965 (MountainPass SR21, SFI Network Isolation / CFS adoption). The npm side of these pipelines is handled by #1893; this PR is the Maven side.
The goal of SR21 is that a build can run on a network isolated pool. That requires knowing every host the build contacts. This PR removes two obstacles to that, neither of which changes what the build produces.
1.
oss.sonatype.orgis unreachable by constructionjava-extension/pom.xmldeclares a snapshots repository, but every artifact resolved against it carries a release version, so Maven can only ever get a 404 back. Build 31824861:Downloading from oss.sonatype.orgDownloaded from oss.sonatype.orgEvery one of those 196 requests failed and Maven fell back to Central. Removing the entry drops an external host and 196 failed round trips, and cannot change resolution because it never resolved anything.
2. p2 mirror redirects make the host set unknowable
download.eclipse.organswers p2 requests with a redirect to a mirror picked per request from a pool of third party hosts.com.microsoft.java.test.tp.targetreferences/eclipse/updates/4.38/and/releases/2025-12/, both of which are mirrored, so that build read most of its bundles from eight hosts the repository never declares:for example:
The selection is per request, so the host set differs run to run and cannot be enumerated in advance — no allow list can be written for it.
-Declipse.p2.mirrors=false(Tycho system property; the older-Dtycho.disableP2Mirrors=trueis deprecated) makes p2 read from the URL in the target definition, collapsing those eight hosts into the one the target already names.What this does not do
Two sources are untouched and remain follow ups:
repo.maven.apache.org(2417 URLs)vscjavaalready has the Maven Central upstream) viaMavenAuthenticate@0+ a generatedsettings.xmlmirrordownload.eclipse.orgThere is also a third, less obvious one:
downloadJacocoAgent()in this same script shells out tocurl https://repo1.maven.org/..., which bypasses Maven configuration entirely and prints no URL, so it appears in no build log. It is left alone here because fixing it properly means fetching the agent through the authenticated feed, but it should not be forgotten when the pool policy is tightened.Verification
npm run build-pluginproduces the same jars and the samecontributes.javaExtensionslist. The claim to check in CI is thatoss.sonatype.organd everymirror*host disappear from the build log while the plugin still builds.