Closed
Description
What version of Go are you using (go version
)?
$ go version go version go1.20 darwin/arm64
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.
Metadata
Metadata
Assignees
Labels
Type
Projects
Relationships
Development
No branches or pull requests
Activity
gopherbot commentedon Feb 9, 2023
Change https://go.dev/cl/466315 mentions this issue:
runtime: add missing fp adjustment for arm64
bcmills commentedon Feb 9, 2023
Possibly related to #53037?
felixge commentedon Feb 9, 2023
@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 :).
felixge commentedon Feb 9, 2023
Not sure. But I think #39524 is definitely related.
bcmills commentedon Feb 9, 2023
(CC @golang/arm)
erifan commentedon Feb 10, 2023
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?
felixge commentedon Feb 10, 2023
Thanks @erifan - I hadn't seen this CL. Will definitely try it out.
felixge commentedon Mar 27, 2023
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
3 remaining items
gopherbot commentedon Apr 3, 2023
Change https://go.dev/cl/481635 mentions this issue:
runtime: save frame pointer to the stack in signal handlers for arm64
gopherbot commentedon Apr 3, 2023
Change https://go.dev/cl/481636 mentions this issue:
runtime: zero saved frame pointer when reusing goroutine stack on ARM
runtime: save frame pointer to the stack in signal handlers for arm64
runtime: zero saved frame pointer when reusing goroutine stack on arm64
runtime: adjust frame pointer on stack copy on ARM64