This is an automated email from the ASF dual-hosted git repository. yiguolei pushed a commit to branch branch-4.2 in repository https://gitbox.apache.org/repos/asf/doris.git
commit 0dd17a3bb12adcd23762dada702424e753ffc4f9 Author: Refrain <[email protected]> AuthorDate: Tue Sep 15 18:41:55 2026 +0800 branch-4.1: [improvement](storage) Release unused memory earlier, rather than leaving it to the memory pool for guaranteed release #57215 (#67956) Cherry-picked from #57215. ### What problem does this PR solve? Problem Summary: During aggregation, `cur_row` is no longer needed after merging, but its aggregation state remained allocated until memory-pool teardown. Clear the merged row's aggregation state immediately. ### Release note None ### Check List (For Author) - Test: Directly compiled `be/src/load/memtable/memtable.cpp` and linked `src/load/libLoad.a`. Full BE UT build is blocked by a pre-existing Lance API/header mismatch in `be/src/format_v2/table/lance_reader.cpp`. - Behavior changed: No - Does this need documentation: No --- be/src/load/memtable/memtable.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/be/src/load/memtable/memtable.cpp b/be/src/load/memtable/memtable.cpp index a36e0d588d6..741775eae2e 100644 --- a/be/src/load/memtable/memtable.cpp +++ b/be/src/load/memtable/memtable.cpp @@ -483,7 +483,7 @@ void MemTable::_clear_row_agg(RowInBlock* row) { row->remove_init_agg(); } } - +// only in `to_block` the `is_final` flag will be true, in other cases, it will be false template <bool is_final, bool has_skip_bitmap_col> void MemTable::_aggregate() { SCOPED_RAW_TIMER(&_stat.agg_ns); @@ -507,6 +507,8 @@ void MemTable::_aggregate() { } _stat.merged_rows++; _aggregate_two_row_in_block<has_skip_bitmap_col>(mutable_block, cur_row, prev_row); + // Clean up aggregation state of the merged row to avoid memory leak + _clear_row_agg(cur_row); } else { prev_row = cur_row; if (!temp_row_in_blocks.empty()) { --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
