-
Notifications
You must be signed in to change notification settings - Fork 18k
pprof unrecognized profile format #48580
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
Comments
@sporksmith |
I don't have any reason to think so. Here are some of the file sizes (289 and below seem to work, 290 and above don't):
I think the result is the same. IIUC after running
As you can tell from the timestamps, this is a pretty long-running tool, and there are a lot of allocations and deallocations. Maybe there's some int32 or smaller in the format that could be overflowing? |
Oh; I didn't realize it's a text format. Indeed it looks like there's an int32 overflow:
|
Confirmed that after editing the file to change |
Thanks for looking into this. Yeah, it looks like a bug in tcmalloc (or whatever generates the profile). Closing as it is not a bug in Go.
Yes. For the latter, |
What version of Go are you using (
go version
)?Does this issue reproduce with the latest release?
What operating system and processor architecture are you using (
go env
)?go env
OutputWhat did you do?
I'm profiling the heap of shadow. Fully reproducing is a bit involved to get set up, but ultimately I'm running
LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libtcmalloc_and_profiler.so.4 HEAPPROFILE=shadow.heap HEAP_PROFILE_TIME_INTERVAL=180 shadow ...
The earlier profiles are parsed correctly, but starting at 290 they are unparseable.
I'm then using pprof to analyze the heap dumps.
What did you expect to see?
Last working profile is shadow.heap.0289.heap.gz:
What did you see instead?
All the ones after that fail to parse, starting with
shadow.heap.0290.heap.gz
The text was updated successfully, but these errors were encountered: