Skip to content

Benchmarks: disable jemalloc trait to fix SIGSEGV on macOS 26#1040

Open
pblazej wants to merge 1 commit into
mainfrom
blaze/benchmarks-malloc
Open

Benchmarks: disable jemalloc trait to fix SIGSEGV on macOS 26#1040
pblazej wants to merge 1 commit into
mainfrom
blaze/benchmarks-malloc

Conversation

@pblazej

@pblazej pblazej commented Jun 11, 2026

Copy link
Copy Markdown
Contributor

The nightly benchmark crash (SIGSEGV in the first benchmark since Jun 10) is jemalloc's malloc-zone hooks freeing a foreign pointer during CoreFoundation's one-time locale init, triggered by the webrtc-xcframework 144.7559.08 bump (bisected: last-good SDK commit + .07 passes, same commit with only the pin flipped to .08 crashes). Disabling package-benchmark's Jemalloc trait removes the malloc-zone interposition entirely — malloc metrics read 0, all other metrics unaffected; full suite verified locally at main + .08.

🤖 Generated with Claude Code

The nightly benchmark workflow started failing on Jun 10: the benchmark
binary segfaults during the first benchmark (BM-CONN-001), reported by
package-benchmark as WaitPIDError / error code [11].

Bisected to the webrtc-xcframework 144.7559.07 -> 144.7559.08 bump
(0e6fde4): the last-good SDK commit passes with .07 and crashes with
only the pin flipped to .08. With the .08 binary loaded, jemalloc's
malloc-zone hooks (linked by package-benchmark for malloc stats) free
a pointer they don't own during CoreFoundation's one-time
NSLocale._preferredLanguages init on the NSURLSession work thread:

  je_free_default -> zone_free -> __CFBasicHashRehash ->
  CFNotificationCenterAddObserver -> ... -> CFNetwork Accept-Language

Disabling the Jemalloc package trait (its only default trait) removes
the malloc-zone interposition entirely, which fixes the crash class
regardless of what shifts early CF allocations. Malloc metrics read 0
without it; all other metrics are unaffected.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown

⚠️ This PR does not contain any files in the .changes directory.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant