Skip to content

Use forked jemalloc pprof and disable parca-debuginfo stripping#4328

Merged
jackkleeman merged 1 commit intomainfrom
jk/oupuznyovslm
Feb 6, 2026
Merged

Use forked jemalloc pprof and disable parca-debuginfo stripping#4328
jackkleeman merged 1 commit intomainfrom
jk/oupuznyovslm

Conversation

@jackkleeman
Copy link
Contributor

@jackkleeman jackkleeman commented Feb 4, 2026

  1. By disabling parca-debuginfo's built in extraction mechanisms, we can allow pprof to parse its elf build id. With extraction this doesn't work. Without this change, pprof will only work if the symbols are provided directly pprof ./restate-server.debug heap.pb.gz and it does not work when they are found in a directory PPROF_BINARY_PATH=. pprof ./heap.pb.gz. With this change, either works.
  2. via Use max limit in mappings polarsignals/rust-jemalloc-pprof#31 we can allow pprof to symbolize our heap profiles. Without that pr, the pprof has its mappings zeroed out, signifying that addresses are normalized, which pprof attempts to handle correctly but fails to do so.

@github-actions
Copy link

github-actions bot commented Feb 4, 2026

Test Results

  7 files  ±0    7 suites  ±0   6m 49s ⏱️ +8s
 49 tests ±0   49 ✅ ±0  0 💤 ±0  0 ❌ ±0 
210 runs  ±0  210 ✅ ±0  0 💤 ±0  0 ❌ ±0 

Results for commit d4f34e5. ± Comparison against base commit 392e9c5.

♻️ This comment has been updated with latest results.

@jackkleeman jackkleeman force-pushed the jk/oupuznyovslm branch 6 times, most recently from 1998eb0 to 2ab2ce9 Compare February 5, 2026 09:34
@jackkleeman jackkleeman changed the title Use forked jemalloc pprof & remove split debug sections Use forked jemalloc pprof and disable parca-debuginfo stripping Feb 5, 2026
@jackkleeman jackkleeman marked this pull request as ready for review February 5, 2026 23:01
Copy link
Contributor

@AhmedSoliman AhmedSoliman left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Amazing investigative work as usual @jackkleeman. Thanks so much for going the extra mile and fixing it.

tracing = { workspace = true }

[target.'cfg(not(target_env = "msvc"))'.dependencies]
jemalloc_pprof = { version = "0.8.1", default-features = false, features = ["symbolize"] }
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If we can leave a comment with the PR we are waiting to be released upstream, just to make it easier to remember why are we using a fork.

@AhmedSoliman AhmedSoliman added the release-blocker Blocker for the next release label Feb 6, 2026
@jackkleeman jackkleeman merged commit 7503f0c into main Feb 6, 2026
8 checks passed
@jackkleeman jackkleeman deleted the jk/oupuznyovslm branch February 6, 2026 17:28
@github-actions github-actions bot locked and limited conversation to collaborators Feb 6, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

release-blocker Blocker for the next release

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants