From: Willy Tarreau Date: Thu, 21 Nov 2024 10:30:03 +0000 (+0100) Subject: BUG/MEDIUM: pools/memprofile: always clean stale pool info on pool_destroy() X-Git-Tag: v3.0.7~16 X-Git-Url: http://git.haproxy.org/?a=commitdiff_plain;h=cd587f2b488550dd33c79d91144b0d19ef1127ae;p=haproxy-3.0.git BUG/MEDIUM: pools/memprofile: always clean stale pool info on pool_destroy() There's actually a problem with memprofiles: the pool pointer is stored in ->info but some pools are replaced during startup, such as the trash pool, leaving a dangling pointer there, that may randomly report crap or even crash during "show profile memory". Let's make pool_destroy() call memprof_remove_stale_info() added by previous patch so that these entries are properly unregistered. This must be backported along with the previous patch (MINOR: activity/memprofile: offer a function to unregister stale info) as far as 2.8. (cherry picked from commit ed3ed358676edf058663bde7ec6098b51f8bc745) Signed-off-by: Christopher Faulet --- diff --git a/src/pool.c b/src/pool.c index 6a4d778..f8ab680 100644 --- a/src/pool.c +++ b/src/pool.c @@ -942,6 +942,9 @@ void *pool_destroy(struct pool_head *pool) /* note that if used == 0, the cache is empty */ free(pool->base_addr); } + + /* make sure this pool is no longer referenced in memory profiling */ + memprof_remove_stale_info(pool); } return NULL; }