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

Unable to build Ryuk with s390x (buildkit/qemu) #27

Closed
rnorth opened this issue Apr 17, 2021 · 2 comments
Closed

Unable to build Ryuk with s390x (buildkit/qemu) #27

rnorth opened this issue Apr 17, 2021 · 2 comments

Comments

@rnorth
Copy link
Member

rnorth commented Apr 17, 2021

The multi-arch buildkit build is currently failing for the s390x platform, with a segmentation fault. This is despite no changes since #21, which was working in December.

This is replicable with GitHub Actions and Docker for Mac 3.3.0 (not tried older versions).

Many go subcommands fail (e.g. build, vet, fmt). mod download fails when using newer versions of Go.

So far all of the following avenues have proved fruitless:

  • Pinning buildkit/binfmt to various versions
  • Changing the tag used for golang build up to 1.16.3
  • Changing the golang base image (from buster to alpine)

Quick analysis of the core dumps doesn't yield anything obvious to me.

@rnorth
Copy link
Member Author

rnorth commented Apr 17, 2021

We could:

  • investigate further and maybe find out the source of the problem; Ryuk release is blocked during that time
  • wait; again Ryuk release is blocked
  • disable build for s390x; this unblocks release but would give us uneven version/platform coverage

None of these options seems particularly good.

One alternative course of action would be to perform all of the multi-arch binary builds using go's multi-arch targetting, and just use buildx's to copy the right binary into an image. Essentially, we'd eliminate QEMU execution from the container build.

This would be a pain, but might be to most pragmatic approach.

@rnorth
Copy link
Member Author

rnorth commented Aug 2, 2021

The passage of time may have fixed things; tonistiigi/binfmt:master (or a pinned equivalent) is now allowing the build to pass, it seems.

@rnorth rnorth closed this as completed Aug 3, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant