Skip to content

build: retry transient JDT LS p2 downloads - #1898

Open
wenytang-ms wants to merge 1 commit into
mainfrom
wenyt/retry-p2-downloads
Open

build: retry transient JDT LS p2 downloads#1898
wenytang-ms wants to merge 1 commit into
mainfrom
wenyt/retry-p2-downloads

Conversation

@wenytang-ms

@wenytang-ms wenytang-ms commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

Why

Scheduled build 31864478 failed while Tycho was downloading:

https://download.eclipse.org/jdtls/snapshots/repository/latest/plugins/org.gradle.toolingapi_8.9.0.v20250904-1000.jar

The server reset that connection. Tycho 4.0.5 then tried its local cache and failed the build because the artifact had not completed downloading.

This is not a Maven/CFS routing failure. A pre-CFS build, 31824861, downloaded the same artifact from the same JDT LS snapshot URL successfully, and that repository's artifacts.xml does not define p2 mirrors. The failed build also restored its Maven artifacts from vscjava successfully before the p2 transfer failed.

What changed

Set retryCountOnTaskFailure: 2 on npm run build-plugin in the CI, nightly, and RC ADO pipelines.

Azure Pipelines retries the task on the same agent. Maven's local repository and Tycho's p2 cache therefore retain every completed download, so a retry only needs to fetch the missing artifact. This keeps transient network handling in the pipeline rather than adding retry code to the product or Node build script.

No runtime source, Maven resolution, target platform, or build output is changed.

Verification

  • Pipeline 15770 (nightly) preview: compiled, 0 errors
  • Pipeline 15776 (RC) preview: compiled, 0 errors
  • The manual hotfix run was canceled because this official pipeline requires approval for non-scheduled runs; it is not used as validation evidence.
  • Runtime validation: pending the next scheduled run after merge. Scheduled runs do not require that manual approval.

The JDT LS snapshot repository has no p2 mirrors, and Tycho 4.0.5 does not retry a direct connection reset. Let Azure Pipelines retry the build-plugin task on the same agent so the Maven and p2 caches are reused and only the missing artifact is fetched again.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: ac225268-483d-4498-a08f-fe79a87d4d2e
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant