Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Azure 3.0 helix test #106330

Merged
merged 4 commits into from
Aug 29, 2024
Merged

Add Azure 3.0 helix test #106330

merged 4 commits into from
Aug 29, 2024

Conversation

richlander
Copy link
Member

No description provided.

@richlander
Copy link
Member Author

richlander commented Aug 13, 2024

Is this change even getting triggered by this PR run? I'm guessing not? I wasn't able to find it in the build logs. I looked within Libraries Test Run release coreclr linux x64 Debug.

It is the same place as the existing Mariner image.

- ${{ if or(ne(parameters.jobParameters.testScope, 'outerloop'), ne(parameters.jobParameters.runtimeFlavor, 'mono')) }}:
- ${{ if or(eq(parameters.jobParameters.isExtraPlatformsBuild, true), eq(parameters.jobParameters.includeAllPlatforms, true)) }}:
- SLES.15.Amd64.Open
- (Fedora.38.Amd64.Open)[email protected]/dotnet-buildtools/prereqs:fedora-38-helix
- Ubuntu.2204.Amd64.Open
- (Debian.11.Amd64.Open)[email protected]/dotnet-buildtools/prereqs:debian-11-helix-amd64
- (Mariner.2.0.Amd64.Open)[email protected]/dotnet-buildtools/prereqs:cbl-mariner-2.0-helix-amd64

If not, how do I trigger the outer loop? Is this the right place for Azure Linux validation going forward?

@jkotas
Copy link
Member

jkotas commented Aug 13, 2024

/azp help

Copy link

Supported commands
  • help:
    • Get descriptions, examples and documentation about supported commands
    • Example: help "command_name"
  • list:
    • List all pipelines for this repository using a comment.
    • Example: "list"
  • run:
    • Run all pipelines or specific pipelines for this repository using a comment. Use this command by itself to trigger all related pipelines, or specify specific pipelines to run.
    • Example: "run" or "run pipeline_name, pipeline_name, pipeline_name"
  • where:
    • Report back the Azure DevOps orgs that are related to this repository and org
    • Example: "where"

See additional documentation.

@jkotas
Copy link
Member

jkotas commented Aug 13, 2024

/azp list

Copy link

CI/CD Pipelines for this repository:

@jkotas
Copy link
Member

jkotas commented Aug 13, 2024

/azp run runtime-libraries-coreclr outerloop

Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@jkotas
Copy link
Member

jkotas commented Aug 13, 2024

Is this change even getting triggered by this PR run? I'm guessing not?

Correct. The new config is in the extra platforms section that is not triggered by default on PRs.

@richlander
Copy link
Member Author

It isn't obvious to me that this worked. I searched for "azurelinux" on this page (where other helix images are listed) and see no hits.

https://dev.azure.com/dnceng-public/public/_build/results?buildId=774725&view=logs&j=df56ac33-e9fe-5eb2-5cdb-3303d7aad000&t=f62247f8-d051-5cb6-d5f0-06f532f9a005

@sbomer was suggesting that runtime-extra-platforms might be the correct choice. Was that right Sven?

@jkotas
Copy link
Member

jkotas commented Aug 14, 2024

/azp run runtime-extra-platforms

Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@richlander
Copy link
Member Author

richlander commented Aug 14, 2024

That appears to have worked. Thanks! Now have to sort through the failures.

From linux-x64 Release Libraries_Release_CoreCLR. See last line.

  Job 9dd74d98-088e-420c-ac29-bd09c3137c32 on SLES.15.Amd64.Open is completed with 252 finished work items.
  Job de58e71a-b7f7-47e4-a224-6256e6481fcb on Ubuntu.2204.Amd64.Open is completed with 252 finished work items.
  Job 4105daeb-2110-4c8a-a440-abaa51adbd4c on (Debian.11.Amd64.Open)[email protected]/dotnet-buildtools/prereqs:debian-11-helix-amd64 is completed with 252 finished work items.
  Job 3172cef6-ff63-4ccf-974b-4ed486ac49fc on (Fedora.38.Amd64.Open)[email protected]/dotnet-buildtools/prereqs:fedora-38-helix is completed with 252 finished work items.
  Job 72282a81-4343-418b-b29c-6f912b0ce732 on (Mariner.2.0.Amd64.Open)[email protected]/dotnet-buildtools/prereqs:cbl-mariner-2.0-helix-amd64 is completed with 252 finished work items.
  Job 930393ef-df5e-4161-813e-d12cb38af42b on (AzureLinux.3.0.Amd64.Open)[email protected]/dotnet-buildtools/prereqs:azurelinux-3.0-helix-amd64 is completed with 252 finished work items.

@richlander
Copy link
Member Author

/root/helix/work/workitem/e /root/helix/work/workitem/e
  Discovering: System.Net.Quic.Functional.Tests (method display = ClassAndMethod, method display options = None)
  Discovered:  System.Net.Quic.Functional.Tests (found 4 of 152 test cases)
  Starting:    System.Net.Quic.Functional.Tests (parallel test collections = on [2 threads], stop on fail = off)
MsQuic not supported and using 'unknown'.
    System.Net.Quic.Tests.MsQuicPlatformDetectionTests.SupportedLinuxPlatformsWithMsQuic_IsSupportedIsTrue [FAIL]
      Assert.True() Failure
      Expected: True
      Actual:   False
      Stack Trace:
        /_/src/libraries/System.Net.Quic/tests/FunctionalTests/MsQuicPlatformDetectionTests.cs(51,0): at System.Net.Quic.Tests.MsQuicPlatformDetectionTests.SupportedLinuxPlatformsWithMsQuic_IsSupportedIsTrue()
        --- End of stack trace from previous location ---
      Output:
        /usr/lib/libmsquic.so.2
        /usr/lib/libmsquic.so
        /usr/lib/libmsquic.so.2.4.3

We added libmsquic to the image. Does it need to learn about Azure Linux? I'm looking at using 'unknown'..

@liveans @wfurt

@liveans
Copy link
Member

liveans commented Aug 14, 2024

We added libmsquic to the image. Does it need to learn about Azure Linux? I'm looking at using 'unknown'..

@liveans @wfurt

I'll take a look what's wrong, might be missing dependency.

@wfurt
Copy link
Member

wfurt commented Aug 14, 2024

helixbot [ / ]$ ldd /usr/lib/libmsquic.so.2.4.3
	linux-vdso.so.1 (0x00007ffc131ef000)
	libcrypto.so.3 => /usr/lib/libcrypto.so.3 (0x00007f3f60061000)
	libatomic.so.1 => not found
	libnuma.so.1 => not found
	libc.so.6 => /usr/lib/libc.so.6 (0x00007f3f5fe1e000)
	/lib64/ld-linux-x86-64.so.2 (0x00007f3f606ba000)

@liveans
Copy link
Member

liveans commented Aug 14, 2024

image
It is indeed missing dependency.

After installing libnuma1, libatomic1 should work.

/cc @richlander

@wfurt
Copy link
Member

wfurt commented Aug 14, 2024

we should update the pattern in https://github.com/dotnet/dotnet-buildtools-prereqs-docker/ to verify that produced library at least loads. With that, one could find issues before going all the way to runtime.

@liveans
Copy link
Member

liveans commented Aug 14, 2024

we should update the pattern in https://github.com/dotnet/dotnet-buildtools-prereqs-docker/ to verify that produced library at least loads. With that, one could find issues before going all the way to runtime.

We can actually run msquictest --gtest_filter=ParameterValidation.ValidateApi, that's something msquic itself using on Packaging pipeline to verify package is loading or not.

@jkotas
Copy link
Member

jkotas commented Aug 14, 2024

We can do all that, but I think we are missing the user point of view.

If our users want to use msquic on Azure Linux, how are they expected to get it? Are they expected to build their own like what we are doing in dotnet-buildtools-prereqs-docker? Should it be documented somewhere?

@richlander
Copy link
Member Author

FYI: microsoft/msquic#4450

@liveans
Copy link
Member

liveans commented Aug 14, 2024

We can do all that, but I think we are missing the user point of view.

If our users want to use msquic on Azure Linux, how are they expected to get it? Are they expected to build their own like what we are doing in dotnet-buildtools-prereqs-docker? Should it be documented somewhere?

msquic team is working on it: microsoft/msquic#4455, they are going to publish packages soon.

@jkotas
Copy link
Member

jkotas commented Aug 14, 2024

msquic team is working on it: microsoft/msquic#4455, they are going to publish packages soon.

Should we just wait for the proper msquic package to get published?

If we cannot wait, we should make sure to revert dotnet/dotnet-buildtools-prereqs-docker#1177 workaround once the proper package is available.

Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@vcsjones
Copy link
Member

Looks like test artifacts are failing to publish, but looking at the raw logs from System.Security.Cryptography, the output is promising.

https://helixre107v0xdcypoyl9e7f.blob.core.windows.net/dotnet-runtime-refs-pull-106330-merge-12fcefff9a154ce5ae/System.Security.Cryptography.Tests/1/console.a7858ece.log?helixlogtype=result

=== TEST EXECUTION SUMMARY ===
System.Security.Cryptography.Tests Total: 9776, Errors: 0, Failed: 0, Skipped: 310, Time: 106.457s

@vcsjones
Copy link
Member

Hm, that may be the wrong breadcrumb of test results. I don't see them for AZL.

@richlander
Copy link
Member Author

Thoughts @carlossanlop?

@carlossanlop
Copy link
Member

There was a helix outage reported for most of the day today. I think a retry from scratch should work. Let's close and reopen this, and execute runtime-extra-platforms once again.

@carlossanlop
Copy link
Member

/azp run runtime-extra-platforms

Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@richlander
Copy link
Member Author

Looks like Azure Linux is coming out clean (except the System.IO.Tests). Is that your read @vcsjones?

@bartonjs
Copy link
Member

https://helixre107v0xdcypoyl9e7f.blob.core.windows.net/dotnet-runtime-refs-pull-106330-merge-e655bc6eb742442c9c/System.Security.Cryptography.Pkcs.Tests/1/console.c243fbb9.log?helixlogtype=result

Looks like there's still a test in the S.S.C.Pkcs library using RSA+MD5:

Assert.True(rsa2.TrySignData(
keyBag.Pkcs8PrivateKey.Span,
sig,
HashAlgorithmName.MD5,
RSASignaturePadding.Pkcs1,
out int sigLen));
Assert.Equal(sig.Length, sigLen);
Assert.True(rsa.VerifyData(
keyBag.Pkcs8PrivateKey.Span,
sig,
HashAlgorithmName.MD5,
RSASignaturePadding.Pkcs1));

@vcsjones
Copy link
Member

/azp run runtime-extra-platforms

Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@richlander
Copy link
Member Author

That looks clean now. Yes?

@vcsjones
Copy link
Member

That looks clean now. Yes?

Yes. All the linux legs look green to me. The only failures I see are Apple iOS / tvOS / Catalyst which are unrelated.

@richlander
Copy link
Member Author

Sounds good. We just need an approval now. We can then decide how to approach release/8.0-staging. The current plan is to not offer Azure Linux 3.0 support for .NET 6.

@vcsjones
Copy link
Member

vcsjones commented Aug 29, 2024

We can then decide how to approach release/8.0-staging.

We also need to backport to release/9.0.

  1. release/9.0 has one more pending backport for a green crypto test run. [release/9.0] Azure Linux 3.0 and test fixes #107123
  2. release/8.0-staging has a backport PR of all fixes rolled up ready to go. [release/8.0-staging] Backport Azure Linux test changes #107061

@richlander
Copy link
Member Author

Would you consider adding the pipeline change to those PRs so that you can run the runtime-extra-platforms pipeline just before merging (and then we're done?).

https://github.com/dotnet/runtime/pull/106330/files#diff-cbc8f55c9e8b4fc53ff194be8f6e99b461bbb888220a8ede2e5edb53b947b287R71

@vcsjones
Copy link
Member

Would you consider adding the pipeline change to those PRs so that you can run the runtime-extra-platforms pipeline just before merging (and then we're done?).

https://github.com/dotnet/runtime/pull/106330/files#diff-cbc8f55c9e8b4fc53ff194be8f6e99b461bbb888220a8ede2e5edb53b947b287R71

I cherry picked this PR onto those backport PRs and kicked off a run.

@richlander
Copy link
Member Author

Can you offer us an approval @bartonjs?

@richlander
Copy link
Member Author

Thanks @bartonjs and @vcsjones. Much appreciated. That was all quite unexpected.

@richlander richlander merged commit 1b656fe into dotnet:main Aug 29, 2024
112 of 122 checks passed
@richlander richlander deleted the azure-linux-helix branch August 29, 2024 17:07
jtschuster pushed a commit to jtschuster/runtime that referenced this pull request Sep 17, 2024
@github-actions github-actions bot locked and limited conversation to collaborators Oct 2, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants