Repository navigation
Update x64 Helix test VMs to Azure Linux 4 - #134819
Conversation
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 01f6ee32-8a73-4e38-8dff-885a73cb671a
|
/azp run runtime-extra-platforms Note This CI trigger comment was generated with GitHub Copilot. |
|
No pipelines are associated with this pull request. |
|
Azure Pipelines: Successfully started running 8 pipeline(s). 8 pipeline(s) were filtered out due to trigger conditions. There may be pipelines that require an authorized user to comment /azp run to run. |
|
Tagging subscribers to this area: @dotnet/runtime-infrastructure |
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 01f6ee32-8a73-4e38-8dff-885a73cb671a
|
/azp run runtime-extra-platforms |
|
Azure Pipelines: Successfully started running 1 pipeline(s). |
|
I'm not sure why I started extra-platforms when I didn't change that definition. Has been a while since I've worked on infra! |
|
There are legit crypto failures in here that are unfortunately getting swept up in another known build issue. I will look at them. |
|
Thanks @vcsjones! |
|
@richlander it looks like the crypto failures are gone, but there is still a failure around QUIC not being available when it is expected to be. |
|
Starting a re-run. Let's see if there are more QUIC failures. May need help @wfurt |
|
@wfurt -- looks like the typical issue with QUIC. at System.Net.Quic.Tests.MsQuicPlatformDetectionTests.SupportedLinuxPlatforms_IsSupportedIsTrue() in /_/src/libraries/System.Net.Quic/tests/FunctionalTests/MsQuicPlatformDetectionTests.cs:line 66
at System.Reflection.IntrinsicInvokeHelper.Instance_Void_0(IntPtr fn, Object obj, IntPtr* _, RuntimeType __) in /_/src/coreclr/System.Private.CoreLib/src/System/Reflection/IntrinsicInvokeHelper.cs:line 837
at System.Reflection.MethodBaseInvoker.InvokeWithSharedThunk(Object obj, IntPtr* args) in /_/src/coreclr/System.Private.CoreLib/src/System/Reflection/MethodBaseInvoker.CoreCLR.cs:line 30
at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) in /_/src/libraries/System.Private.CoreLib/src/System/Reflection/RuntimeMethodInfo.cs:line 134 |
Use Azure Linux 4 only as the host for container-backed x64 Helix queues until the bare VM image provides the required test dependencies. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: aeaf3e2c-381c-4017-896b-c3805ac77d94
|
After some research, I see the problem is the bare VMs. I'm going to switch those back to Azure Linux 3. We can switch them to Azure Linux 4 when MSQUIC is in the Azure Linux 4 feed, which doesn't appear to be the case. I would expect it to be here: https://packages.microsoft.com/azurelinux/4/prod/base/x86_64/Packages/l/. |
|
/azp run runtime-extra-platforms |
|
Azure Pipelines: Successfully started running 1 pipeline(s). |
hoyosjs
left a comment
There was a problem hiding this comment.
Provided no tests fail in ways that hint at kernel issues, LGTM
|
/ba-g Failures are unrelated |
## Summary Update Fedora x64 Helix coverage from Fedora 44 to Fedora 45. | Surface | Slot | Previous | New | | --- | --- | --- | --- | | Linux x64 Helix | Latest | Fedora 44 | Fedora 45 | Fedora 44 remains supported until June 2, 2027. Fedora 45 follows Fedora's N-2 lifecycle policy; its fixed EOL date is not yet published and is expected around November 2027. The exact `fedora-45-helix-amd64` container tag is available in the MCR registry and is pinned to `sha256:256fcd76faa9078632f0b8c68374f2e9ee45242b9ee7f68bda5f0a51fc28bc90`. This PR intentionally preserves the current Azure Linux 3 container host. #134819 updates the host independently, so the PRs may conflict depending on merge order. ## Validation - `git diff --check` - passed - Parsed both modified YAML files with Python `yaml.safe_load` - passed - Confirmed no Fedora 44 references remain in the Helix queue definitions - passed - Confirmed the Fedora 45 container tag and pinned digest against MCR - passed Fedora x64 coverage is carried by `runtime-extra-platforms`, so that pipeline is requested for this PR. ## References - [OS onboarding guide](https://github.com/dotnet/runtime/blob/main/docs/project/os-onboarding.md) - [.NET OS support tracking](dotnet/core#9638) - [Fedora release lifecycle](https://docs.fedoraproject.org/en-US/releases/lifecycle/) > [!NOTE] > This PR description was generated with GitHub Copilot. --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 6d6ff904-3e8f-4ec8-902d-1df0da3380b9
<!-- --> ## Summary Native ARM64 **container-host** equivalent of #134819: move the physical Helix host queues from Azure Linux 3 to Azure Linux 4 without moving standalone test VMs or changing payload distro images. | Host routing | Previous host | New host | Mappings | | --- | --- | --- | --- | | Public | `AzureLinux.3.Arm64.Open` | `AzureLinux.4.Arm64.Open` | 8 | | Internal | `AzureLinux.3.Arm64` | `AzureLinux.4.Arm64` | 3 | The 11 host-only replacements are limited to four YAML files: | File under `eng/pipelines/` | Preserved payload/alias coverage | Mappings | | --- | --- | --- | | `coreclr/templates/helix-queues-setup.yml` | Alpine 3.24 ARM64, public/internal | 2 | | `libraries/helix-queues-setup.yml` | Ubuntu 26.04 ARM64, Azure Linux 3.0 ARM64, Alpine 3.24 ARM64 | 3 | | `installer/helix-queues-setup.yml` | Ubuntu 26.04 ARM64 and Alpine 3.24 ARM64 | 2 | | `helix-platforms.yml` | Alpine ARM64 latest/oldest, public/internal aliases | 4 | Every descriptive alias, registry/image tag/digest, distro/version/architecture identity, lane condition, queue variable/group and lane count remains unchanged. In particular, `(AzureLinux.3.0.ArmArch.Open)` and its `azurelinux-3.0-helix-arm64v8` image remain Azure Linux 3 coverage; only their container host moves. All 14 ARM32-on-ARM64 container mappings and both standalone CoreCLR ARM64 VM mappings retain their existing hosts. Build agents, cross-build images, SuperPMI, GitHub Actions and other platforms are unchanged. The standalone AL4 VM `libmsquic` prerequisite is not bypassed by this change. Related to **#136313, H1**. This PR does not close the tracking issue or declare H1, S1 or S2 complete. ## Validation Static checks on commit `8869ad3d623ff1910b927f74e46adf995debac4b`: - `git diff HEAD^ HEAD --check` - passed. - `ruby -ryaml -e 'ARGV.each { |path| YAML.load_file(path); puts "PASS #{path}" }' eng/pipelines/coreclr/templates/helix-queues-setup.yml eng/pipelines/helix-platforms.yml eng/pipelines/installer/helix-queues-setup.yml eng/pipelines/libraries/helix-queues-setup.yml` - passed; all four files parsed. - An ad hoc Ruby/Open3 full-file invariant check compared each committed file with its parent after applying only the inventoried native ARM64 host-component replacements - passed. It asserted the exact four-file set, per-file replacement counts, eight public/three internal mappings, unchanged image/alias/condition bytes, and unchanged 14 ARM32/two standalone ARM64 mappings. - GitHub's comparison against `main` reports one commit, four changed files and 11 additions/11 deletions. Refreshed the live [Helix queue catalog](https://helix.dot.net/api/2019-06-17/info/queues) on 2026-10-23: | Queue | Architecture | IsAvailable | IsInternalOnly | | --- | --- | --- | --- | | `azurelinux.4.arm64` | ARM64 | true | true | | `azurelinux.4.arm64.open` | ARM64 | true | false | Queue availability does **not** establish capacity or native workload/container/kernel compatibility. No product build, native Helix execution, Docker activity, manual CI trigger/retry or Helix submission was performed for this metadata-only change. ## Required native CI coverage and existing gaps Standard CI selects only part of the changed mappings; it must not be treated as complete coverage of this PR: - Default `runtime` includes CoreCLR-selected Alpine ARM64 coverage and libraries Azure Linux 3 ARM64 coverage. Confirm actual execution on the new hosts, including the applicable public/internal routes. - `runtime-extra-platforms` selects Ubuntu ARM64 libraries coverage, but its current platform matrix does **not** list `linux_musl_arm64`. - The libraries Alpine ARM64 branch needs `includeAllPlatforms=true` coverage, such as the scheduled rolling libraries outerloop path. A normal extra-platforms run alone does not exercise it. - Current callers of the installer queue template select no ARM64 platforms. The changed installer ARM64 mappings therefore require separately arranged native ARM64 execution; Alpine additionally requires `isExtraPlatformsBuild=true` or `includeAllPlatforms=true`. - No direct YAML consumers were found for the central Alpine ARM64 latest/oldest aliases. Updating those definitions is not evidence that they executed. No coverage wiring is expanded in this PR. Native execution evidence and merge remain pending; static checks and queue availability do not complete the host migration. Reference: [OS onboarding guide](https://github.com/dotnet/runtime/blob/main/docs/project/os-onboarding.md). > [!NOTE] > This PR description was generated with GitHub Copilot. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 96a5c84b-34cb-4531-b8cf-e6502299ec1d
Summary
Move runtime-owned x64 Helix container hosts from Azure Linux 3 to Azure Linux 4 while keeping standalone Helix test VMs on Azure Linux 3.
AzureLinux.3.Amd64[.Open]AzureLinux.4.Amd64[.Open]AzureLinux.3.Amd64[.Open]AzureLinux.3.Amd64[.Open]Azure Linux 4 is used only to host containers. It is not selected as a bare test VM because the Azure Linux 4 package repositories do not currently provide
libmsquic. The Azure Linux 4 Helix prerequisite container handles this by installinglibmsquicfrom the Azure Linux 3ms-ossfeed.Explicit Azure Linux 3 and Azure Linux 4 container test coverage is preserved; only the underlying Helix host moves to Azure Linux 4. Azure Pipelines build agents remain on
build.azurelinux.3.amd64[.open]because Azure Linux 4 build images are not available in the build pools.Azure Linux does not publish fixed end-of-support dates for these releases. See the Azure Linux release cadence and lifecycle.
No container tags or digests changed, so MCR image availability is unaffected.
Validation
git diff --check— passedYAML.load_file— passedAzureLinux.4.Amd64[.Open]queue values remainbuild.azurelinux.4.amd64references remainThe default
runtimepipeline covers the primary container-host mappings.runtime-extra-platformscovers the changed hosts backing Fedora, Debian, openSUSE, and Alpine edge coverage.References
Note
This PR description was generated with GitHub Copilot.