-
Notifications
You must be signed in to change notification settings - Fork 71
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
[Asahi Linux] ubuntu 22.x (?) core dumps in linux/amd64
, linux/s390x
emulation on arm64 host (apple silicon) with p_rcu_reader->depth != 0
#90
Comments
linux/amd64
, linux/s390x
emulation on arm64 host (apple silicon)linux/amd64
, linux/s390x
emulation on arm64 host (apple silicon) with p_rcu_reader->depth != 0
uh, nevermind the limitation to Ubuntu 22.x, these also fail with the same coredump: docker run -it --platform linux/amd64 rocker/r-ver
# based on ubuntu 20.04 docker run -it --platform linux/amd64 r-base
# based on debian bookworm/sid |
Under regular Apple M1 the command seems to work fine:
I don't have Asahi Linux though. Not sure if anything special in that kernel. You might also want to check your docker version, sometimes seccomp causes issues on older versions. You can also just try the test command without seccomp to be sure that is not the case. |
docker --version
# Docker version 20.10.16, build aa7e414fdc That's current, I think.
docker run --rm --security-opt seccomp=unconfined --platform linux/amd64 ubuntu apt-get update
# Assertion failed: p_rcu_reader->depth != 0 (/qemu/include/qemu/rcu.h: rcu_read_unlock: 101) I think this disables seccomp? |
linux/amd64
, linux/s390x
emulation on arm64 host (apple silicon) with p_rcu_reader->depth != 0
linux/amd64
, linux/s390x
emulation on arm64 host (apple silicon) with p_rcu_reader->depth != 0
I'll crosspost this on Asahi. |
maybe related:
-- asahi lead dev @marcan, via reddit @tonistiigi is there a way for me to pass |
@maxheld83 Can you test with #93 (comment) and let me know? |
@crazy-max don't think I can (on asahi linux):
As far as I can see from https://hub.docker.com/r/crazymax/binfmt/tags, there is no |
@maxheld83 Sorry forgot to push a multi platform image. Should be ok now. |
@crazy-max thanks 🙏, done ☑️. Same problem (coredump), unfortunately 😔.
|
I compiled tonistiigi/binfmt with qemu master and many amd64 apps are stuck in infinite loop (100% cpu consumption). One of the examples is cmake --version. I am using Asahi Linux on M1 Mac Mini |
It's happening. Trying to run Microsoft SQL Server on Raspberry Pi 5
|
To reproduce, on an arm64 host (Apple Silicon) I ran:
This is:
docker run --privileged --rm tonistiigi/binfmt --version # binfmt/1aa2eba qemu/v6.2.0 go/1.17.8
These fail:
docker run --platform linux/amd64 ubuntu apt-get update # Assertion failed: p_rcu_reader->depth != 0 (/qemu/include/qemu/rcu.h: rcu_read_unlock: 101)
Same thing for
linux/s390x
, but all other above enabled emulators work fine (in so far as they the platform is supported by ubuntu).I'm guessing this affects more than just
apt-get update
; I just needed that first.Some downstream (of ubuntu 22.x) images, such as r-base are also affected (already on their default
ENTRYPOINT
/CMD
).A bunch of other official images also seemed to be unaffected on cursory inspection, including alpine, debian and fedora.
The problem also does not occur (even for
linux/s290x
on an amd64 host).So, TL,DR, it seems you need all of these for the problem to arise:
linux/amd64
orlinux/s390x
image architectureapt-get key list
, but not a coredump -- 18.04 works without a hitch)I'm running this on a vanilla Asahi Linux Apple M1 machine.
(I don't have access to another arm64 host, so couldn't cross-validate whether the issue is somehow related to Apple Silicon).
The text was updated successfully, but these errors were encountered: