-
Notifications
You must be signed in to change notification settings - Fork 17.6k
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: inline frames may not use combined location #37446
Comments
@gopherbot please consider this for backport to 1.14, it's a regression. |
Backport issue(s) opened: #37447 (for 1.14). Remember to create the cherry-pick CL(s) as soon as the patch is submitted to master, according to https://golang.org/wiki/MinorReleases. |
To clarify, there are two related issues here:
|
Change https://golang.org/cl/220377 mentions this issue: |
Change https://golang.org/cl/221577 mentions this issue: |
What version of Go are you using (
go version
)?Does this issue reproduce with the latest release?
Regression in Go 1.14
What operating system and processor architecture are you using (
go env
)?go env
OutputWhat did you do?
Collect a heap profile from a profile with stacks truncated in the middle of inline frames: https://play.golang.org/p/6--6a10WPCa
What did you expect to see?
Consistent profile output.
What did you see instead?
http://golang.org/cl/204636 attempts to group inlined frames into the same Location, as required by the pprof format. Once a location is created, it is cached for reuse by future identical frames.
However, the runtime may truncate stacks, potentially truncating in between inlined frames. If the truncated frame is encountered first, then separate locations will be created for the two frames. If a complete frame is encountered first, then a combined location will be use for both frames.
This behavior is nondeterministic, so similar profiles may different:
This may be particularly problematic for tools looking at diffs between two profiles.
The former has location:
The latter has locations:
cc @hyangah @heschik
The text was updated successfully, but these errors were encountered: