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

Unpin arm build image, use Debian 12 helix images #102059

Merged
merged 3 commits into from
May 13, 2024
Merged

Conversation

sbomer
Copy link
Member

@sbomer sbomer commented May 9, 2024

Reverts the temporary fix from #102035, and switches to Debian 12 arm images added in dotnet/dotnet-buildtools-prereqs-docker#1041 for testing.

This replaces the Ubuntu 18.04 arm images with Debian because building new Ubuntu 22.04 arm images is blocked on dotnet/dnceng#2808.

Fixes #102030

@dotnet-issue-labeler dotnet-issue-labeler bot added the needs-area-label An area label is needed to ensure this gets routed to the appropriate area owners label May 9, 2024
sbomer added a commit to dotnet/dotnet-buildtools-prereqs-docker that referenced this pull request May 10, 2024
Fixes failures running tests on the new arm32 images in
dotnet/runtime#102059:

```
[BEGIN EXECUTION]
+ sudo python -m pip install --disable-pip-version-check -r /root/helix/scripts/runtime_python_requirements.txt
error: externally-managed-environment

× This environment is externally managed
╰─> To install Python packages system-wide, try apt install
    python3-xyz, where xyz is the package you are trying to
    install.
    
    If you wish to install a non-Debian-packaged Python package,
    create a virtual environment using python3 -m venv path/to/venv.
    Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make
    sure you have python3-full installed.
    
    If you wish to install a non-Debian packaged Python application,
    it may be easiest to use pipx install xyz, which will manage a
    virtual environment for you. Make sure you have pipx installed.
    
    See /usr/share/doc/python3.11/README.venv for more information.

note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages.
hint: See PEP 668 for the detailed specification.
```

This fix is only for the arm32 image, which is the only one used
in dotnet/runtime.

There are references to debian-12 arm images in aspnetcore, but
they seem to be unused. The arm64 and amd64 images have similar
errors if I try 'sudo pip install' locally, so they are probably
broken as well, but I'm limiting the fix to arm32 images that we
know we need for ci.
@sbomer sbomer closed this May 10, 2024
@sbomer sbomer reopened this May 10, 2024
@sbomer sbomer merged commit 0129837 into dotnet:main May 13, 2024
145 of 148 checks passed
sbomer added a commit that referenced this pull request May 16, 2024
sbomer added a commit that referenced this pull request May 16, 2024
…102324)

This reverts commit 0129837.

Reverts #102059

We need to address the failures mentioned in #101444 (comment) before upgrading to a Y2038-compatible glibc.
sbomer added a commit that referenced this pull request May 16, 2024
sbomer added a commit to sbomer/runtime that referenced this pull request May 18, 2024
sbomer added a commit that referenced this pull request May 22, 2024
This updates our linux arm32 build to build against a more recent
glibc that supports _TIME_BITS (which we set to 64).

Since openssl may be using either 32-bit or 64-bit time_t, this
includes detection logic to determine which case we are in, and
avoid passing time values that don't fit in 32 bits to openssl.

The arm build image is updated to the latest version of the
images added in
dotnet/dotnet-buildtools-prereqs-docker#1037.

The helix test images are updated to debian images added in
dotnet/dotnet-buildtools-prereqs-docker#1041.
Additional context:

Additional context:

Reintroduces the fix for Y2038 support on arm32
linux (#102059), which was
reverted due to problems running against openssl built with
_TIME_BITS=32.

Fixes #101444 (both the
originally reported issue, and the test failures mentioned in
#101444 (comment)).

Supports: #91826
steveharter pushed a commit to steveharter/runtime that referenced this pull request May 28, 2024
This updates our linux arm32 build to build against a more recent
glibc that supports _TIME_BITS (which we set to 64).

Since openssl may be using either 32-bit or 64-bit time_t, this
includes detection logic to determine which case we are in, and
avoid passing time values that don't fit in 32 bits to openssl.

The arm build image is updated to the latest version of the
images added in
dotnet/dotnet-buildtools-prereqs-docker#1037.

The helix test images are updated to debian images added in
dotnet/dotnet-buildtools-prereqs-docker#1041.
Additional context:

Additional context:

Reintroduces the fix for Y2038 support on arm32
linux (dotnet#102059), which was
reverted due to problems running against openssl built with
_TIME_BITS=32.

Fixes dotnet#101444 (both the
originally reported issue, and the test failures mentioned in
dotnet#101444 (comment)).

Supports: dotnet#91826
Ruihan-Yin pushed a commit to Ruihan-Yin/runtime that referenced this pull request May 30, 2024
Reverts the temporary fix from
dotnet#102035, and switches to
Debian 12 arm images added in
dotnet/dotnet-buildtools-prereqs-docker#1041
for testing.

This replaces the Ubuntu 18.04 arm images with Debian because
building new Ubuntu 22.04 arm images is blocked on
dotnet/dnceng#2808.

Fixes dotnet#102030
Ruihan-Yin pushed a commit to Ruihan-Yin/runtime that referenced this pull request May 30, 2024
)" (dotnet#102324)

This reverts commit 0129837.

Reverts dotnet#102059

We need to address the failures mentioned in dotnet#101444 (comment) before upgrading to a Y2038-compatible glibc.
Ruihan-Yin pushed a commit to Ruihan-Yin/runtime that referenced this pull request May 30, 2024
This updates our linux arm32 build to build against a more recent
glibc that supports _TIME_BITS (which we set to 64).

Since openssl may be using either 32-bit or 64-bit time_t, this
includes detection logic to determine which case we are in, and
avoid passing time values that don't fit in 32 bits to openssl.

The arm build image is updated to the latest version of the
images added in
dotnet/dotnet-buildtools-prereqs-docker#1037.

The helix test images are updated to debian images added in
dotnet/dotnet-buildtools-prereqs-docker#1041.
Additional context:

Additional context:

Reintroduces the fix for Y2038 support on arm32
linux (dotnet#102059), which was
reverted due to problems running against openssl built with
_TIME_BITS=32.

Fixes dotnet#101444 (both the
originally reported issue, and the test failures mentioned in
dotnet#101444 (comment)).

Supports: dotnet#91826
@github-actions github-actions bot locked and limited conversation to collaborators Jun 14, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
needs-area-label An area label is needed to ensure this gets routed to the appropriate area owners
Projects
None yet
Development

Successfully merging this pull request may close these issues.

arm32 fails in CI with "/lib/arm-linux-gnueabihf/libc.so.6: version `GLIBC_2.34' not found"
2 participants