-
Notifications
You must be signed in to change notification settings - Fork 17.8k
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/pprof: spurious prints during profiling on arm (about 1 in 15 minutes) #8153
Labels
Milestone
Comments
I've minimized this further, and it no longer requires a 23 MB data file or third-party deps. Code: http://play.golang.org/p/yOHdaBeFCQ Output: http://play.golang.org/p/Ao0mgpPskJ |
I've made a minimum version, 17 lines: http://play.golang.org/p/3SSAlZ1_En Now I'm getting unexpected return pc also from runtime.mallocgc: runtime: unexpected return pc for runtime.mallocgc called from 0x1032e040 runtime: unexpected return pc for fmt.(*ss).doScanf called from 0xb6e40ee4 runtime: unexpected return pc for fmt.(*ss).doScanf called from 0xb6e40ee4 runtime: unexpected return pc for runtime.mallocgc called from 0x1032e040 runtime: unexpected return pc for runtime.mallocgc called from 0x1032e040 runtime: unexpected return pc for runtime.mallocgc called from 0x1032e040 runtime: unexpected return pc for fmt.(*ss).doScanf called from 0xb6e40ee4 runtime: unexpected return pc for fmt.(*ss).doScanf called from 0xb6e40ee4 |
This happens when the profiling signal arrives during runtime.jmpdefer. The traceback ends up misreading memory and gets confused. It could just as easily have been crashing. I will submit a CL for Go 1.3 that does not attempt to walk past jmpdefer. For Go 1.4 we might want to look at making jmpdefer's modification of PC/SP/LR atomic so that it is not possible to see an inconsistent triple. Labels changed: added release-go1.4, removed release-go1.3maybe. |
CL https://golang.org/cl/107970043 mentions this issue. |
This issue was updated by revision 597f87c. LGTM=minux, iant R=golang-codereviews, minux, iant CC=golang-codereviews, r https://golang.org/cl/107970043 |
CL https://golang.org/cl/101260043 mentions this issue. |
This issue was updated by revision 06752081de7d. LGTM=minux, iant R=golang-codereviews, minux, iant CC=golang-codereviews, r https://golang.org/cl/107970043 »»» LGTM=r R=golang-codereviews, r CC=adg, golang-codereviews, iant https://golang.org/cl/101260043 |
CL https://golang.org/cl/109920044 mentions this issue. |
After the last commit, the error rate has been greatly reduced (may be 50x less frequent or so) but it is still present: 45 minutes in a Raspberry Pi: $ ./test runtime: unexpected return pc for fmt.Fscanf called from 0xb6f22000 runtime: unexpected return pc for fmt.(*ss).doScanf called from 0x1 runtime: unexpected return pc for fmt.(*ss).scanInt called from 0xb6e43d04 |
CL https://golang.org/cl/118670043 mentions this issue. |
This issue was closed by revision e5e547c. Status changed to Fixed. |
rsc
added a commit
that referenced
this issue
May 11, 2015
…of traceback on arm ««« CL 107970043 / b336da131a84 runtime: do not trace past jmpdefer during pprof traceback on arm jmpdefer modifies PC, SP, and LR, and not atomically, so walking past jmpdefer will often end up in a state where the three are not a consistent execution snapshot. This was causing warning messages a few frames later when the traceback realized it was confused, but given the right memory it could easily crash instead. Update #8153 LGTM=minux, iant R=golang-codereviews, minux, iant CC=golang-codereviews, r https://golang.org/cl/107970043 »»» LGTM=r R=golang-codereviews, r CC=adg, golang-codereviews, iant https://golang.org/cl/101260043
adg
added a commit
that referenced
this issue
May 11, 2015
… on arm traceback ««« CL 118670043 / 671fa8a9eb80 runtime: turn off 'unexpected return pc' print on arm traceback It can happen legitimately if a profiling signal arrives at just the wrong moment. It's harmless. Fixes #8153. LGTM=minux R=golang-codereviews, minux CC=golang-codereviews, iant, r https://golang.org/cl/118670043 »»» TBR=rsc CC=golang-codereviews https://golang.org/cl/127950044
wheatman
pushed a commit
to wheatman/go-akaros
that referenced
this issue
Jun 25, 2018
It can happen legitimately if a profiling signal arrives at just the wrong moment. It's harmless. Fixes golang#8153. LGTM=minux R=golang-codereviews, minux CC=golang-codereviews, iant, r https://golang.org/cl/118670043
wheatman
pushed a commit
to wheatman/go-akaros
that referenced
this issue
Jul 9, 2018
It can happen legitimately if a profiling signal arrives at just the wrong moment. It's harmless. Fixes golang#8153. LGTM=minux R=golang-codereviews, minux CC=golang-codereviews, iant, r https://golang.org/cl/118670043
This issue was closed.
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
The text was updated successfully, but these errors were encountered: