From eaaf93c44a1c10e83209a57b40ddd4b1e26c650e Mon Sep 17 00:00:00 2001 From: Teng Ma Date: Wed, 22 Apr 2026 20:51:42 +0800 Subject: [PATCH] [Store] Fix CXL capacity metric leak on segment unmount When a CXL segment is unmounted via CommitUnmountSegment, the total capacity metrics were only decremented for non-CXL segments. CXL segments never called dec_total_cxl_capacity, causing the metric to grow without bound across remount cycles. On mount (initializeCxlAllocator) both inc_total_mem_capacity and inc_total_cxl_capacity are incremented. Match this symmetrically on unmount by adding an else branch that calls both dec_total_mem_capacity and dec_total_cxl_capacity for CXL segments. --- mooncake-store/src/segment.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/mooncake-store/src/segment.cpp b/mooncake-store/src/segment.cpp index 2fe2fbd3b0..ee26d3b284 100644 --- a/mooncake-store/src/segment.cpp +++ b/mooncake-store/src/segment.cpp @@ -231,6 +231,11 @@ ErrorCode ScopedSegmentAccess::CommitUnmountSegment( segment_name, metrics_dec_capacity); MasterMetricManager::instance().dec_total_dram_capacity( segment_name, metrics_dec_capacity); + } else { + MasterMetricManager::instance().dec_total_mem_capacity( + segment_name, metrics_dec_capacity); + MasterMetricManager::instance().dec_total_cxl_capacity( + segment_name, metrics_dec_capacity); } return ErrorCode::OK;