Skip to content

Add Azure Linux 4 to libraries Helix extra-platforms (linux_x64)#127613

Open
richlander wants to merge 4 commits intomainfrom
azl4
Open

Add Azure Linux 4 to libraries Helix extra-platforms (linux_x64)#127613
richlander wants to merge 4 commits intomainfrom
azl4

Conversation

@richlander
Copy link
Copy Markdown
Member

Note

This PR description was AI/Copilot-generated.

Adds Azure Linux 4 to the libraries Helix extra-platforms queue set for linux_x64 (CoreCLR inner-loop) in eng/pipelines/libraries/helix-queues-setup.yml.

Change

File Distro Slot Action
eng/pipelines/libraries/helix-queues-setup.yml AzureLinux 4.0 extra-platforms linux_x64 Added

Queue entry:

(AzureLinux.4.0.Amd64.Open)AzureLinux.3.Amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-4.0-helix-amd64@sha256:00d7174904a88fcc7ed07b7a4af7154a3268b9b1f92aee85102c3808e98e8431

Host queue is AzureLinux.3.Amd64.Open, matching all other container-backed entries in the same section (Debian 13, Fedora 44, openSUSE 16.0).

Image availability

The exact tag azurelinux-4.0-helix-amd64 is present in image-info.dotnet-dotnet-buildtools-prereqs-docker-main.json. Digest pinned in the queue string above.

Scope

helix-platforms.yml is intentionally not updated — those values are reserved for GA releases, and Azure Linux 4 has not yet GA'd. This change only adds opt-in coverage via the extra-platforms pipeline.

CI

This change only affects the extra-platforms (isExtraPlatformsBuild) path. After this PR is opened, run:

/azp run runtime-extra-platforms

References

Adds azurelinux-4.0-helix-amd64 to the extra-platforms CoreCLR inner-loop
queue set in eng/pipelines/libraries/helix-queues-setup.yml.

Image tag verified present in image-info.dotnet-dotnet-buildtools-prereqs-docker-main.json.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@richlander
Copy link
Copy Markdown
Member Author

/azp run runtime-extra-platforms

@dotnet-policy-service
Copy link
Copy Markdown
Contributor

Tagging subscribers to this area: @dotnet/area-infrastructure-libraries
See info in area-owners.md if you want to be subscribed.

@azure-pipelines
Copy link
Copy Markdown

Azure Pipelines successfully started running 1 pipeline(s).

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR expands the libraries Helix queue configuration for the linux_x64 CoreCLR inner-loop path by adding an Azure Linux 4.0 container-backed queue to the extra-platforms set, increasing opt-in OS coverage without changing the general/GA platform sets.

Changes:

  • Add a new extra-platforms Helix queue entry for AzureLinux.4.0.Amd64.Open using the azurelinux-4.0-helix-amd64 prereqs container image (digest-pinned).
  • Keep the host queue consistent with the existing container-backed extra-platforms entries (AzureLinux.3.Amd64.Open).
  • Scope the change to the isExtraPlatformsBuild && testScope != outerloop CoreCLR path only.

@github-actions

This comment has been minimized.

@vcsjones
Copy link
Copy Markdown
Member

Test System.Security.Cryptography.Tests.ChaCha20Poly1305IsSupportedTests.CheckIsSupported has failed.

I can open a pull request to fix this.

@richlander
Copy link
Copy Markdown
Member Author

Thanks @vcsjones. I cannot get crypto-related failures past your eyes easily! Much appreciated.

@vcsjones
Copy link
Copy Markdown
Member

@richlander The ChaCha20Poly1305 test failure fix is merged in #127618

The other test failure is QUIC related. This test is failing.

public void SupportedLinuxPlatforms_IsSupportedIsTrue()
{
_output.WriteLine($"Running on {PlatformDetection.GetDistroVersionString()}");
Assert.True(QuicListener.IsSupported);

It's testing that QUIC is supported on the underlying platform. It seems that the AZL4 image doesn't have a working version of MsQuic available, or for some other reason was not able to load. cc @dotnet/ncl

@richlander
Copy link
Copy Markdown
Member Author

/azp run runtime-extra-platforms

@azure-pipelines
Copy link
Copy Markdown

Azure Pipelines successfully started running 1 pipeline(s).

@github-actions

This comment has been minimized.

@vcsjones
Copy link
Copy Markdown
Member

Ah, okay, it is known that libmsquic is not available dotnet/dotnet-buildtools-prereqs-docker#1646

@richlander
Copy link
Copy Markdown
Member Author

@wfurt @ahmedilyasms what's the best pattern here? Disable the test for Azure Linux 4 or build libmsquic in the helix image?

@wfurt
Copy link
Copy Markdown
Member

wfurt commented May 1, 2026

@wfurt @ahmedilyasms what's the best pattern here? Disable the test for Azure Linux 4 or build libmsquic in the helix image?

yes, I think so. I did ping MsQuic team about this and submitted PR for Ubuntu 26 but it may take some time to get it actually out.

@richlander
Copy link
Copy Markdown
Member Author

@wfurt -- what does "yes I think so" refer to? I gave two options.

@wfurt
Copy link
Copy Markdown
Member

wfurt commented May 1, 2026

@wfurt -- what does "yes I think so" refer to? I gave two options.

yes, disable tests. unless @ManickaP disagrees. I feel we can get the binaries in reasonable timeframe and I don't think it is worth do deal with all the building crap. The msquic binaries are all identical so if anything I would find a way how to get the package from previous release.

@richlander
Copy link
Copy Markdown
Member Author

Can you disable the tests for Azure Linux 4?

Copilot AI review requested due to automatic review settings May 1, 2026 19:05
@vcsjones vcsjones requested a review from ManickaP May 1, 2026 19:06
@vcsjones
Copy link
Copy Markdown
Member

vcsjones commented May 1, 2026

Can you disable the tests for Azure Linux 4?

I disabled it directly in this pull request for now.

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot's findings

  • Files reviewed: 2/2 changed files
  • Comments generated: 2

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 1, 2026

Note

This review was generated by Copilot.

🤖 Copilot Code Review — PR #127613

Holistic Assessment

Motivation: Justified — expanding Helix test coverage to Azure Linux 4.0 (pre-GA, opt-in via extra-platforms) is standard practice for early platform validation, consistent with how Debian 13, Fedora 44, and openSUSE 16.0 were added to the same section.

Approach: Correct — the change follows the established pattern exactly: digest-pinned container image on the AzureLinux.3.Amd64.Open host queue, scoped to the isExtraPlatformsBuild inner-loop path only. The [ActiveIssue] skip for the QUIC test is the right mechanism for a known missing dependency (libmsquic), tracked by issue #127658.

Summary: ✅ LGTM. This is a clean, minimal infrastructure change (2 lines across 2 files) that follows all established patterns and conventions. No correctness, performance, or compatibility concerns.


Detailed Findings

✅ Helix Queue Entry — Correct format and placement

The new entry at eng/pipelines/libraries/helix-queues-setup.yml line 64:

(AzureLinux.4.0.Amd64.Open)AzureLinux.3.Amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-4.0-helix-amd64@sha256:00d7174904a88fcc7ed07b7a4af7154a3268b9b1f92aee85102c3808e98e8431

Verified:

  • ✅ Uses digest-pinned image (not a mutable tag)
  • ✅ Host queue is AzureLinux.3.Amd64.Open, consistent with all sibling container-backed entries (Debian 13, Fedora 44, openSUSE 16.0) in the same block
  • ✅ Placed first in the list, maintaining alphabetical order (AzureLinux < Debian < Fedora < openSUSE)
  • ✅ Scoped to isExtraPlatformsBuild && testScope != outerloop — does not affect GA platform sets or outerloop testing
  • helix-platforms.yml is intentionally unchanged (correct for pre-GA distros)

✅ ActiveIssue Annotation — Proper test skip for known platform limitation

At MsQuicPlatformDetectionTests.cs line 39:

[ActiveIssue("https://github.com/dotnet/runtime/issues/127658", typeof(PlatformDetection), nameof(PlatformDetection.IsAzureLinux4OrHigher))]

Verified:

  • ✅ References a valid, open tracking issue (Re-enable QUIC tests for Azure Linux 4 #127658) explaining libmsquic is not yet available on Azure Linux 4
  • ✅ The PlatformDetection.IsAzureLinux4OrHigher property exists in PlatformDetection.Unix.cs (line 34) and is already used elsewhere (e.g., ChaCha20Poly1305Tests.cs)
  • ✅ Applied to the correct test method (SupportedLinuxPlatformsWithMsQuic_IsSupportedIsTrue) which specifically checks for libmsquic availability
  • ✅ The sibling test SupportedLinuxPlatforms_IsSupportedIsTrue (line 62) is NOT annotated, which is correct — it is gated by [ConditionalFact] and the class-level [ConditionalClass(typeof(QuicTestBase))] will skip when QUIC is not detected

✅ Cross-cutting check — No other tests needing similar skip

The class-level [ConditionalClass(typeof(QuicTestBase))] prevents QUIC functional tests from running when QuicListener.IsSupported is false. Only SupportedLinuxPlatformsWithMsQuic_IsSupportedIsTrue needs the [ActiveIssue] because it uses unconditional [Fact] and explicitly checks for the library.

✅ Scope — Appropriately narrow

  • No changes to helix-platforms.yml (GA platforms)
  • No unrelated modifications or whitespace noise
  • No new public API surface
  • PR is focused on a single purpose: adding a new platform to extra-platforms testing

Generated by Code Review for issue #127613 ·

@wfurt
Copy link
Copy Markdown
Member

wfurt commented May 1, 2026

thanks @vcsjones . It seems like adding msquic is trivial so I changed my mind and posted dotnet/dotnet-buildtools-prereqs-docker#1648 If that works, we should be able to do all the testing. AZL crypto has been ..... interesting .... so I think there may be some value there.

@richlander
Copy link
Copy Markdown
Member Author

That didn't work @wfurt. AZL3 and 4 are incompatible.

@richlander
Copy link
Copy Markdown
Member Author

/azp run runtime-extra-platforms

@azure-pipelines
Copy link
Copy Markdown

Azure Pipelines successfully started running 1 pipeline(s).

@wfurt
Copy link
Copy Markdown
Member

wfurt commented May 1, 2026

That didn't work @wfurt. AZL3 and 4 are incompatible.

what error do you see? Copilot claims otherwise.

@richlander
Copy link
Copy Markdown
Member Author

/azp run runtime-extra-platforms

@azure-pipelines
Copy link
Copy Markdown

Azure Pipelines successfully started running 1 pipeline(s).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants