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]