ci: switch release runner to ubuntu-24.04 to unblock multi-arch build#246
Merged
Conversation
The default binfmt image bundled with docker/setup-qemu-action@v3 ships an older QEMU that segfaults inside glibc post-install hooks (libc-bin's ldconfig) when emulating arm64 on the GitHub Actions runner kernel. Pinning to tonistiigi/binfmt:qemu-v8.1.5 uses a newer QEMU build that handles the syscall path correctly. Caused the v0.1.0 release run to fail in the arm64 builder during apt-get install of build-essential.
|
Note Gemini is unable to generate a review for this pull request due to the file types involved not being currently supported. |
RamanKharchee
previously approved these changes
May 14, 2026
Reverts the binfmt pin from the previous commit in favor of matching the runner that prod-ci.yaml had been using successfully (ubuntu-latest == 24.04 today). The 22.04 runner's older binfmt/QEMU defaults segfault inside glibc's ldconfig when emulating arm64 against debian:bullseye; 24.04 handles it. The old prod-ci.yaml's last green multi-arch run was 2026-04-29 on ubuntu-latest, which is why this only surfaced now.
RamanKharchee
approved these changes
May 14, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
The v0.1.0 release workflow run (#25854609926) failed in the arm64 builder during `apt-get install build-essential`:
```
qemu: uncaught target signal 11 (Segmentation fault) - core dumped
installed libc-bin package post-installation script subprocess returned error exit status 139
```
Root cause
Not actually QEMU regression — runner regression introduced by this fork.
The old `prod-ci.yaml` used `runs-on: ubuntu-latest` and was successfully building multi-arch (`linux/amd64,linux/arm64`) until its last green run on 2026-04-29 (run #25093167883). When I rewrote the workflow in PR #245, I inherited `runs-on: ubuntu-22.04` from the upstream coroot `release.yml` (which had never been exercised in this fork) without realising the working workflows had been on `ubuntu-latest` (= 24.04 today).
The 22.04 runner ships an older binfmt/QEMU combo that segfaults inside glibc `ldconfig` when emulating arm64 against `debian:bullseye`. 24.04 handles it.
Change
Single line: `runs-on: ubuntu-22.04` → `runs-on: ubuntu-24.04`.
(First commit on this branch pinned the binfmt image as an alternative fix; second commit reverts that and switches the runner instead — closer to what was working, no extra third-party image dependency.)
Follow-up
Once merged, delete remote tag `v0.1.0` (failed run, nothing published to GHCR) and re-tag main as v0.1.0 to trigger a fresh release build.
Test plan