This is an automated email from the ASF dual-hosted git repository.

yiguolei pushed a commit to branch branch-3.1
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/branch-3.1 by this push:
     new da30a94b705 Branch 3.1: [memleak](be) fix memleak of 
TabletColumnObjectPool (#52493)
da30a94b705 is described below

commit da30a94b705e0da1f8a8550acea11f39070ef54d
Author: yiguolei <[email protected]>
AuthorDate: Mon Jun 30 18:25:50 2025 +0800

    Branch 3.1: [memleak](be) fix memleak of TabletColumnObjectPool (#52493)
    
    ### What problem does this PR solve?
    
    pick #51771 [[memleak](be) fix memleak of
    
TabletColumnObjectPool](https://github.com/apache/doris/commit/fdc7a041e268698823f21e40f2be75f0db8c6aff)
---
 be/src/olap/rowset/segment_v2/column_reader.cpp | 7 ++++---
 be/src/olap/tablet_schema.cpp                   | 2 +-
 be/src/olap/tablet_schema.h                     | 1 -
 3 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/be/src/olap/rowset/segment_v2/column_reader.cpp 
b/be/src/olap/rowset/segment_v2/column_reader.cpp
index 2fe80e61c57..4c914c1f784 100644
--- a/be/src/olap/rowset/segment_v2/column_reader.cpp
+++ b/be/src/olap/rowset/segment_v2/column_reader.cpp
@@ -854,9 +854,10 @@ Status ColumnReader::new_struct_iterator(ColumnIterator** 
iterator,
     // create default_iterator for schema-change behavior which increase column
     for (size_t i = child_size; i < tablet_column_size; i++) {
         TabletColumn column = tablet_column->get_sub_column(i);
-        std::unique_ptr<ColumnIterator>* it = new 
std::unique_ptr<ColumnIterator>();
-        RETURN_IF_ERROR(Segment::new_default_iterator(column, it));
-        sub_column_iterators.push_back(it->get());
+        std::unique_ptr<ColumnIterator> it;
+        RETURN_IF_ERROR(Segment::new_default_iterator(column, &it));
+        sub_column_iterators.push_back(it.get());
+        it.release();
     }
 
     ColumnIterator* null_iterator = nullptr;
diff --git a/be/src/olap/tablet_schema.cpp b/be/src/olap/tablet_schema.cpp
index 661f84fe83b..0ac02007769 100644
--- a/be/src/olap/tablet_schema.cpp
+++ b/be/src/olap/tablet_schema.cpp
@@ -1075,7 +1075,7 @@ void TabletSchema::init_from_pb(const TabletSchemaPB& 
schema, bool ignore_extrac
             auto pair = TabletColumnObjectPool::instance()->insert_index(
                     deterministic_string_serialize(index_pb));
             index = pair.second;
-            _index_cache_handlers.push_back(pair.first);
+            TabletColumnObjectPool::instance()->release(pair.first);
         } else {
             index = std::make_shared<TabletIndex>();
             index->init_from_pb(index_pb);
diff --git a/be/src/olap/tablet_schema.h b/be/src/olap/tablet_schema.h
index da763e26a0a..1c98d4056ff 100644
--- a/be/src/olap/tablet_schema.h
+++ b/be/src/olap/tablet_schema.h
@@ -634,7 +634,6 @@ private:
     std::vector<TabletColumnPtr> _cols;
 
     std::vector<TabletIndexPtr> _indexes;
-    std::vector<Cache::Handle*> _index_cache_handlers;
     std::unordered_map<StringRef, int32_t, StringRefHash> _field_name_to_index;
     std::unordered_map<int32_t, int32_t> _field_id_to_index;
     std::unordered_map<vectorized::PathInDataRef, int32_t, 
vectorized::PathInDataRef::Hash>


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to