mirror of
https://github.com/jemalloc/jemalloc.git
synced 2026-07-19 07:07:18 +03:00
Exercises the tsd thread-pointer hoisting bug: ucontext fibers do free/swapcontext/malloc in one frame on a worker pool, so a fiber routinely resumes on a different OS thread; under whole-program LTO the inlined fastpath then frees/allocs against the previous thread's tcache and crashes. It is a standalone program (no test harness, so it can be static-linked without symbol clashes), calling jemalloc via JEMALLOC_MANGLE and linked statically with --whole-archive so the allocator inlines next to the swapcontext. Built only when -flto is in the build flags -- without LTO the allocator is not inlined and the bug cannot reproduce, so the test would be a meaningless always-pass -- and gated on ELF + static + have_ucontext (a configure link test, since musl declares but does not implement getcontext/makecontext/swapcontext). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| cpp | ||
| aligned_alloc.c | ||
| allocated.c | ||
| extent.c | ||
| extent.sh | ||
| malloc.c | ||
| mallocx.c | ||
| mallocx.sh | ||
| MALLOCX_ARENA.c | ||
| overflow.c | ||
| posix_memalign.c | ||
| rallocx.c | ||
| sdallocx.c | ||
| slab_sizes.c | ||
| slab_sizes.sh | ||
| smallocx.c | ||
| smallocx.sh | ||
| tcache_fiber_migration.c | ||
| thread_arena.c | ||
| thread_tcache_enabled.c | ||
| xallocx.c | ||
| xallocx.sh | ||