From 726e0d5ebfcc7ceaa463b2f4b7dbb86a09b06059 Mon Sep 17 00:00:00 2001 From: Xin Liao Date: Tue, 18 Jul 2023 09:49:36 +0800 Subject: [PATCH] [fix](load) fix dead loop in _handle_mem_exceed_limit function when reduce memory for load (#21886) --- be/src/runtime/load_channel_mgr.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/be/src/runtime/load_channel_mgr.cpp b/be/src/runtime/load_channel_mgr.cpp index 2a0020a9ff..3d9dbc6f19 100644 --- a/be/src/runtime/load_channel_mgr.cpp +++ b/be/src/runtime/load_channel_mgr.cpp @@ -371,11 +371,12 @@ void LoadChannelMgr::_handle_mem_exceed_limit() { continue; } all_writers_mem.emplace_back(kv.second, item.first, std::move(item.second)); - size_t pos = all_writers_mem.size() - 1; - tablets_mem_heap.emplace(std::get<2>(all_writers_mem[pos]).begin(), - std::get<2>(all_writers_mem[pos]).end(), pos); } } + for (size_t i = 0; i < all_writers_mem.size(); i++) { + tablets_mem_heap.emplace(std::get<2>(all_writers_mem[i]).begin(), + std::get<2>(all_writers_mem[i]).end(), i); + } // reduce 1/10 memory every time int64_t mem_to_flushed = _mem_tracker->consumption() / 10;