xinyiZzz opened a new pull request, #19126:
URL: https://github.com/apache/doris/pull/19126
# Proposed changes
Issue Number: close #xxx
## Problem summary
Asan memory leak:
```
Direct leak of 192 byte(s) in 6 object(s) allocated from:
#0 0x5598a4329bee in malloc
(/mnt/hdd01/dorisTestEnv/VEC_ASAN/be/lib/doris_be+0x14cd1bee) (BuildId:
0e35cb6207c3ab7c)
#1 0x5598a48e85c5 in Allocator<false, true>::alloc(unsigned long,
unsigned long) /doris/be/src/vec/common/all
ocator.h:157:27
#2 0x5598a500adb6 in doris::vectorized::Allocator_<void*
phmap::priv::Allocate<8ul, doris::vectorized::Allocator_<unsigned
long>>(doris::vectorized::Alloc
ator_<unsigned long>*, unsigned long)::M>::allocate(unsigned long)
/doris/be/src/vec/common/hash_table/phmap_fwd_
decl.h:39:73
#3 0x5598a500ad6e in
phmap::allocator_traits<doris::vectorized::Allocator_<void*
phmap::priv::Allocate<8ul, doris::vectorized::Allocator_<unsigned long>>(
doris::vectorized::Allocator_<unsigned long>*, unsigned
long)::M>>::allocate(doris::vectorized::Allocator_<void*
phmap::priv::Allocate<8ul, doris::vectorized:
:Allocator_<unsigned long>>(doris::vectorized::Allocator_<unsigned long>*,
unsigned long)::M>&, unsigned long) /d
oris/thirdparty/installed/include/parallel_hashmap/phmap_base.h:1468:18
#4 0x5598a500a919 in void* phmap::priv::Allocate<8ul,
doris::vectorized::Allocator_<unsigned
long>>(doris::vectorized::Allocator_<unsigned long>*, unsigne
d long)
/doris/thirdparty/installed/include/parallel_hashmap/phmap_base.h:4356:13
...
#10 0x5598a726fe40 in phmap::flat_hash_set<unsigned long,
phmap::Hash<unsigned long>, phmap::EqualTo<unsigned long>,
doris::vectorized::Allocator_<unsigne
d long>>::operator=(phmap::flat_hash_set<unsigned long, phmap::Hash<unsigned
long>, phmap::EqualTo<unsigned long>, doris::vectorized::Allocator_<unsigned
long
>> const&)
/doris/thirdparty/installed/include/parallel_hashmap/phmap.h:4577:7
#11 0x5598a727e7a4 in doris::HyperLogLog::merge(doris::HyperLogLog
const&) /doris/be/src/olap/hll.cpp:89:23
#12 0x5598ab7a544e in
doris::vectorized::AggregateFunctionHLLData::add(doris::vectorized::IColumn
const*, unsigned long) /mnt/hdd01/repo_center/doris_bran
ch-2.0-alpha/doris/be/src/vec/aggregate_functions/aggregate_function_hll_union_agg.h:59:17
#13 0x5598ab7a09a0 in
doris::vectorized::AggregateFunctionHLLUnion<doris::vectorized::AggregateFunctionHLLUnionImpl<doris::vectorized::AggregateFunctionHL
LData>>::add(char*, doris::vectorized::IColumn const**, unsigned long,
doris::vectorized::Arena*) const /doris/be
/src/vec/aggregate_functions/aggregate_function_hll_union_agg.h:104:27
#14 0x5598a5dfe3b1 in
doris::MultiBlockMerger::merge(std::vector<std::unique_ptr<doris::vectorized::Block,
std::default_delete<doris::vectorized::Block>>,
std::allocator<std::unique_ptr<doris::vectorized::Block,
std::default_delete<doris::vectorized::Block>>>> const&, doris::RowsetWriter*,
unsigned long*) doris/be/src/olap/schema_change.cpp:107:52
#15 0x5598a5dbc8d2 in
doris::VSchemaChangeWithSorting::_internal_sorting(std::vector<std::unique_ptr<doris::vectorized::Block,
std::default_delete<doris::
vectorized::Block>>,
std::allocator<std::unique_ptr<doris::vectorized::Block,
std::default_delete<doris::vectorized::Block>>>> const&, doris::Version const&,
long, std::shared_ptr<doris::Tablet>, doris::RowsetTypePB,
doris::SegmentsOverlapPB, std::shared_ptr<doris::Rowset>*)
/mnt/hdd01/repo_center/doris_branch-2.0-
alpha/doris/be/src/olap/schema_change.cpp:565:5
#16 0x5598a5dbb304 in
doris::VSchemaChangeWithSorting::_inner_process(std::shared_ptr<doris::RowsetReader>,
doris::RowsetWriter*, std::shared_ptr<doris::T
ablet>, std::shared_ptr<doris::TabletSchema>)::$_3::operator()() const
/doris/be/src/olap/schema_change.cpp:489:9
#17 0x5598a5dba862 in
doris::VSchemaChangeWithSorting::_inner_process(std::shared_ptr<doris::RowsetReader>,
doris::RowsetWriter*, std::shared_ptr<doris::T
ablet>, std::shared_ptr<doris::TabletSchema>)
/doris/be/src/olap/schema_change.cpp:533:5
#18 0x5598a5e0b069 in
doris::SchemaChange::process(std::shared_ptr<doris::RowsetReader>,
doris::RowsetWriter*, std::shared_ptr<doris::Tablet>, std::shared
_ptr<doris::Tablet>, std::shared_ptr<doris::TabletSchema>)
/doris/be/src/olap/schema_change.h:87:9
#19 0x5598a5dd2db5 in
doris::SchemaChangeHandler::_convert_historical_rowsets(doris::SchemaChangeHandler::SchemaChangeParams
const&) /mnt/hdd01/repo_cente
r/doris_branch-2.0-alpha/doris/be/src/olap/schema_change.cpp:1598:33
#20 0x5598a5dcad14 in
doris::SchemaChangeHandler::_do_process_alter_tablet_v2(doris::TAlterTabletReqV2
const&) /mnt/hdd01/repo_center/doris_branch-2.0-alp
ha/doris/be/src/olap/schema_change.cpp:1124:15
#21 0x5598a5dc54db in
doris::SchemaChangeHandler::process_alter_tablet_v2(doris::TAlterTabletReqV2
const&) /d
oris/be/src/olap/schema_change.cpp:857:18
#22 0x5598a69d35ed in doris::EngineAlterTabletTask::execute()
/doris/be/src/olap/task/engine_alter_tablet_tas
k.cpp:40:18
#23 0x5598a5d08d6c in
doris::StorageEngine::execute_task(doris::EngineTask*)
/doris/be/src/olap/storage_engin
e.cpp:1001:5
#24 0x5598a5e9a550 in
doris::TaskWorkerPool::_alter_tablet(doris::TAgentTaskRequest const&, long,
doris::TTaskType::type, doris::TFinishTaskRequest*) /mnt
/hdd01/repo_center/doris_branch-2.0-alpha/doris/be/src/agent/task_worker_pool.cpp:680:42
#25 0x5598a5e7e44b in
doris::TaskWorkerPool::_alter_tablet_worker_thread_callback()
/doris/be/src/agent/task_
worker_pool.cpp:640:17
```
```
#0 0x5598a4363ded in operator new(unsigned long)
(/mnt/hdd01/dorisTestEnv/VEC_ASAN/be/lib/doris_be+0x14d0bded) (BuildId:
0e35cb6207c3ab7c)
#1 0x5598ae1606a1 in
COW<doris::vectorized::IColumn>::mutable_ptr<doris::vectorized::ColumnVector<long>>
COWHelper<doris::vectorized::ColumnVectorHelper,
doris::vectorized::ColumnVector<long>>::create<>()
/doris/be/src/vec/common/cow.h:412:27
#2 0x5598ae160268 in
doris::vectorized::ColumnVector<long>::clone_resized(unsigned long) const
/doris/be/src/
vec/columns/column_vector.cpp:319:16
#3 0x5598a477c0f9 in doris::vectorized::IColumn::clone_empty() const
/doris/be/src/vec/columns/column.h:117:5
3
#4 0x5598ae632232 in
doris::vectorized::ColumnWithTypeAndName::clone_empty() const
/doris/be/src/vec/core/col
umn_with_type_and_name.cpp:34:30
#5 0x5598ae5e1d41 in doris::vectorized::Block::clone_empty() const
/doris/be/src/vec/core/block.cpp:508:25
#6 0x5598b32ac19e in
doris::vectorized::AggregateFunctionSortData::AggregateFunctionSortData(std::vector<doris::vectorized::SortColumnDescription,
std::al
locator<doris::vectorized::SortColumnDescription>>, doris::vectorized::Block
const&) /doris/be/src/vec/aggregate_
functions/aggregate_function_sort.h:39:60
#7 0x5598b32a895f in
doris::vectorized::AggregateFunctionSort<doris::vectorized::AggregateFunctionSortData>::create(char*)
const /mnt/hdd01/repo_center/do
ris_branch-2.0-alpha/doris/be/src/vec/aggregate_functions/aggregate_function_sort.h:160:21
#8 0x5598b32a9d3f in
doris::vectorized::IAggregateFunctionHelper<doris::vectorized::AggregateFunctionSort<doris::vectorized::AggregateFunctionSortData>>::
deserialize_vec(char*, doris::vectorized::ColumnString const*,
doris::vectorized::Arena*, unsigned long) const /d
oris/be/src/vec/aggregate_functions/aggregate_function.h:335:48
#9 0x5598b32aa00f in
doris::vectorized::IAggregateFunctionHelper<doris::vectorized::AggregateFunctionSort<doris::vectorized::AggregateFunctionSortData>>::
deserialize_from_column(char*, doris::vectorized::IColumn const&,
doris::vectorized::Arena*, unsigned long) const
/mnt/hdd01/repo_center/doris_branch-2.0-alph
a/doris/be/src/vec/aggregate_functions/aggregate_function.h:342:9
```
## Checklist(Required)
* [ ] Does it affect the original behavior
* [ ] Has unit tests been added
* [ ] Has document been added or modified
* [ ] Does it need to update dependencies
* [ ] Is this PR support rollback (If NO, please explain WHY)
## Further comments
If this is a relatively large or complex change, kick off the discussion at
[[email protected]](mailto:[email protected]) by explaining why you
chose the solution you did and what alternatives you considered, etc...
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]