From 85fe14ba38321e8a4f2fb6d13aa5ad9021468a8d Mon Sep 17 00:00:00 2001 From: zhannngchen Date: Tue, 1 Jul 2025 21:37:59 +0800 Subject: [PATCH] [fix](mow) fix potential mem leak for DeleteBitmap::AggCache (#52596) Problem Summary: DeleteBitmap::AggCache use a singleton to manage the memory of LRUCache. It needs to release the cache memory at program exit. --- be/src/olap/tablet_meta.h | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/be/src/olap/tablet_meta.h b/be/src/olap/tablet_meta.h index ba7dbbaf20d45a..efc4558f7bbe8e 100644 --- a/be/src/olap/tablet_meta.h +++ b/be/src/olap/tablet_meta.h @@ -536,6 +536,12 @@ class DeleteBitmap { std::call_once(once, [size_in_bytes] { auto* tmp = new AggCachePolicy(size_in_bytes); AggCache::s_repr.store(tmp, std::memory_order_release); + + // release the sigleton instance at program exit + std::atexit([] { + auto* ptr = AggCache::s_repr.exchange(nullptr, std::memory_order_acquire); + delete ptr; + }); }); while (!s_repr.load(std::memory_order_acquire)) {