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

[release/7.0] Target lower glibc for Linux arm64 #80866

Merged
merged 5 commits into from
Feb 8, 2023

Conversation

sbomer
Copy link
Member

@sbomer sbomer commented Jan 19, 2023

This uses new cross-build images, added in dotnet/dotnet-buildtools-prereqs-docker#754, that target Ubuntu 16.04. It should address the .NET 7 part of #69361.

Same change was made in .NET 8 here: #80939.

The new images were published here: dotnet/versions@33968c3
Updated to dotnet/versions@f2e8ed1.

Customer Impact

Allows .NET Linux arm64 to run on Amazon Linux 2 by lowering the glibc version requirement to 2.23. Fixes the .NET 7 part of #69361. Customers were hitting the following when using .NET Linux arm64 for AWS Lambda functions:

Failed to load /var/task/libcoreclr.so, error: /lib64/libm.so.6: version `GLIBC_2.27' not found (required by /var/task/libcoreclr.so)

AWS tracking issue: aws/aws-lambda-dotnet#1310

Testing

  • Ci testing
  • Local validation that build succeeds with pgo instrumentation (using cross-compiled LLVM profiler library)
  • Manual validation of glibc symbol versions in the native build output
  • Handed a ci build to partners who validated it was working as expected for their scenarios on Amazon Linux 2 (see Define libc targeting plan #69361 (comment))
  • Same fix was applied in .NET 8 and is rolling out as part of of preview 1

Risk

Low to medium. Any risk is limited to Linux arm64. This is a change in the version of a fundamental dependency, but testing gives confidence that the fix is functionally good. Building with PGO instrumentation has been validated. Collection of PGO data, and validation of the perf characteristics of PGO-optimized builds using the resulting data, has not been manually tested, but the fix has gone through the .NET 8 official build process successfully, suggesting that it passes any automated PGO validation we have.

@dotnet-issue-labeler
Copy link

I couldn't figure out the best area label to add to this PR. If you have write-permissions please help me learn by adding exactly one area label.

@ghost ghost assigned sbomer Jan 19, 2023
@sbomer sbomer marked this pull request as ready for review January 19, 2023 17:52
@sbomer sbomer closed this Jan 19, 2023
@sbomer sbomer reopened this Jan 19, 2023
@ghost
Copy link

ghost commented Jan 24, 2023

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

Issue Details

This uses new cross-build images, added in dotnet/dotnet-buildtools-prereqs-docker#754, that target Ubuntu 16.04. It should address the .NET 7 part of #69361.

The new images were published here: dotnet/versions@33968c3

Author: sbomer
Assignees: sbomer
Labels:

area-Infrastructure

Milestone: -

@sbomer sbomer added the Servicing-consider Issue for next servicing release review label Feb 3, 2023
@sbomer
Copy link
Member Author

sbomer commented Feb 3, 2023

Currently hitting #81619 and #81545.

Copy link
Member

@jeffschwMSFT jeffschwMSFT left a comment

Choose a reason for hiding this comment

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

approved. we will take for consideration in 7.0.x. please get a code review

@rbhanda rbhanda added Servicing-approved Approved for servicing release and removed Servicing-consider Issue for next servicing release review labels Feb 7, 2023
@rbhanda rbhanda modified the milestones: 7.0.x, 7.0.4 Feb 7, 2023
@carlossanlop
Copy link
Member

Since this PR hit the failure due to not finding the ARM64 helix queue, I'm closing and reopening it now that I merged the fixes for those queues, to ensure we get the necessary coverage in the PR.

@carlossanlop carlossanlop reopened this Feb 8, 2023
@carlossanlop
Copy link
Member

Approved by Tactics for 7.0.4.
Signed off by area owners.
No OOB changes needed.
CI failures in re-run are pre-existing and unrelated: #81544 and #81391
Ready to merge. :shipit:

@carlossanlop carlossanlop merged commit 13832f5 into dotnet:release/7.0 Feb 8, 2023
@ghost ghost locked as resolved and limited conversation to collaborators Mar 10, 2023
@sbomer sbomer deleted the glibcVersion branch November 3, 2023 18:37
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
area-Infrastructure Servicing-approved Approved for servicing release
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants