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: copystack doesn't adjust frame pointers on arm64 #58432
Comments
Change https://go.dev/cl/466315 mentions this issue: |
Possibly related to #53037? |
@mknyszek @prattmic @aclements FYI. Took me a while to debug the fp unwinding crashes I saw, but this seems to be the root cause and relatively easy to fix (see CL above). However, the fix reveals (or causes?) more issues with frame pointers on arm64,- details are in CL 466315. I'm putting this on hold for now and will focus on making fp unwinding work on amd64 first. But if anybody has a good idea, please let me know :). |
(CC @golang/arm) |
There's a lot of work to be done here, can you try if this CL https://go-review.googlesource.com/c/go/+/241158 works for you first? |
Thanks @erifan - I hadn't seen this CL. Will definitely try it out. |
My colleague @nsrip-dd and I are currently looking at this. Could you elaborate what you mean by "a lot of work to be done here"? We can't really figure out why the patch had stalled and what other things might need to be done here. cc @cherrymui |
I'm not sure there are a lot. But I'm also not sure if that CL is not enough to ensure frame pointer working everywhere. (It is probably enough for this particular issue.) There are probably a few places we smashed the frame pointer. CL https://golang.org/cl/241080 was one I found. There may be others. Syscall wrappers might be some. I'm happy to update that CL. |
@cherrymui thanks for the fast reply! Yeah, we suspect that there are more problems like the one you mentioned. We see a lot of crashes when enabling |
Change https://go.dev/cl/241158 mentions this issue: |
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
any/arm64
What did you do?
Try to implement frame pointer unwinding for the tracer (gh 16638, wip patch).
What did you expect to see?
copystack should adjust frame pointers on the stack when growing the stack.
What did you see instead?
TODO what about arm64 frame pointer adjustment?😅 .
Seems like this issue was missed when the CL 61511 for this landed in 2018.
This is causing lots of crashes when trying to frame pointer unwind stacks that have grown.
The text was updated successfully, but these errors were encountered: