From e128b170a0b884aa34ca7fe3f61e89fc54fce918 Mon Sep 17 00:00:00 2001 From: Yinan Zhang Date: Wed, 13 May 2020 14:17:54 -0700 Subject: [PATCH] Do not fallback to auto arena when manual arena is requested --- src/jemalloc.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/jemalloc.c b/src/jemalloc.c index aacec7b6..5d7c2666 100644 --- a/src/jemalloc.c +++ b/src/jemalloc.c @@ -2164,6 +2164,10 @@ imalloc_no_sample(static_opts_t *sopts, dynamic_opts_t *dopts, tsd_t *tsd, arena = NULL; } else { arena = arena_get(tsd_tsdn(tsd), dopts->arena_ind, true); + if (unlikely(arena == NULL) && + dopts->arena_ind >= narenas_auto) { + return NULL; + } } if (unlikely(dopts->alignment != 0)) { @@ -3315,7 +3319,7 @@ do_rallocx(void *ptr, size_t size, int flags, bool is_realloc) { if (unlikely((flags & MALLOCX_ARENA_MASK) != 0)) { unsigned arena_ind = MALLOCX_ARENA_GET(flags); arena = arena_get(tsd_tsdn(tsd), arena_ind, true); - if (unlikely(arena == NULL)) { + if (unlikely(arena == NULL) && arena_ind >= narenas_auto) { goto label_oom; } } else {