build: drop the unreachable snapshot repository and pin p2 to its origin - #1047
Merged
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 (31823304) issued 42 such
requests and completed none of them:
Downloading from oss.sonatype.org: 42
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 42 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.35/ and /releases/2024-12/,
which are mirrored, that same build read most of its bundles from five
hosts none of the repository declares:
eclipse.mirror.rafal.ca, ca.mirrors.cicku.me, mirror.aarnet.edu.au,
ftp2.osuosl.org, mirror.cs.odu.edu
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.
wenytang-ms
marked this pull request as ready for review
July 29, 2026 04:36
chagong
approved these changes
Jul 29, 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.
Part of the remediation for ICM 840100965 (MountainPass SR21, SFI Network Isolation / CFS adoption). The npm side of these pipelines is handled by #1046; 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 constructionjdtls.ext/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 31823304:Downloading from oss.sonatype.orgDownloaded from oss.sonatype.orgEvery one of those 42 requests failed and Maven fell back to Central. Removing the entry drops an external host and 42 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.jdtls.ext.tp.targetreferences/eclipse/updates/4.35/and/releases/2024-12/, both of which are mirrored, so that build read most of its bundles from five 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 five hosts into the one the target already names.What this does not do
Maven Central traffic (
repo.maven.apache.org, 927 unique URLs in that build) still goes direct. Routing it through the CFS feed needsMavenAuthenticate@0plus a generatedsettings.xmlmirror, which is a larger change and is deliberately not bundled here. After this PR the external host set fornpx gulp build_serveris:repo.maven.apache.orgvscjavaalready has the Maven Central upstream)download.eclipse.orgTwo named hosts is something an exception request can actually be written against.
Verification
npx gulp build_serverproduces the samecom.microsoft.jdtls.ext.core-*.jar. The claim to check in CI is thatoss.sonatype.organd everymirror*host disappear from the build log while the server still builds.