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
runtime: unexpected return pc for runtime.sigpanic called from 0x0 #46818
Comments
A followup crash, seems illegal instruction, unsure how.
|
A 3rd error, now a deadlock in the memory manager?
|
sadly qemu has never worked reliably for arm or arm64. /cc @minux @cherrymui |
If it's qemu-user (User mode emulation), I don't think it's actually supported, I think we don't have any builder. |
@fjl had a pointer that "qemu doesn't implement multicore operation exactly like a hardware cpu", so it might be worthwhile to try with Now, this does get the build started and going (i.e. no insta-crash like before); however I did still see some weirdness in one build:
I'm still waiting for a second retry to finish, going for 15 minutes now. I think I read somewhere that signals might be broken if both C++ and Go register them under qemu? |
Current verdict is that the Go compiler hangs at one place or another eventually even with GOMAXPROCS=1. Generally between 10-15 minutes. Waited an hour but it did not budge out. Will try to force a stack dump somehow if it hangs again. Unsure how I can do that across so many layers though. |
Ok, I guess in theory this works. In practice, Qemu copies files at a rate of 29KB/s on my machine and with binaries of 300MB, that's pointless to even attempt. I'll try to use native machines to do the cross builds somehow. In the mean time, I guess it's safe to close this issue with the "Use GOMAXPROCS=1" workaround. |
What version of Go are you using (
go version
)?Does this issue reproduce with the latest release?
Yes
What operating system and processor architecture are you using (
go env
)?Linux / Docker
What did you do?
I'm unsure whether this is a bug in Go or not, it's above my knowledge, but here's what I did: I wanted to create a multi-archi docker image for https://github.com/ethereum/go-ethereum for
amd64
andarm64
. (The repository builds and runs fine on both these architectures natively). The canonical way to create a multi-arch docker image is viadocker buildx
, which I think uses qemu to emulate foreign architectures (i.e. arm64 on amd64).While running my builder, I got through a lot of steps that involve code execution, so the emulation seems to be working fine for arm64 via amd64. However, once I got to executing Go code, the builder crashed in what it looks like Go's TLS crypto handshake. (EDIT: Then again, it might be unrelated and just signal handling?)
I'd assume that running Go within a qemu instance should work fine, so I'm not really sure what's at fault here. Maybe somebody can shed some light what I could try? Thank you!
The text was updated successfully, but these errors were encountered: