xinyiZzz opened a new pull request, #27434:
URL: https://github.com/apache/doris/pull/27434
## Proposed changes
```
==3671003==ERROR: AddressSanitizer: heap-use-after-free on address
0x60f000d71e68 at pc 0x557a3c21c907 bp 0x7fcbc5ddfe30 sp 0x7fcbc5ddfe28
READ of size 4 at 0x60f000d71e68 thread T39 (memory_gc_threa)
#0 0x557a3c21c906 in doris::MemTrackerLimiter::make_snapshot() const
\ndoris_branch-2.0/doris/be/src/runtime/memory/mem_tracker_limiter.cpp:114:33
#1 0x557a3c21f0d5 in
doris::MemTrackerLimiter::make_top_consumption_snapshots(std::vector<doris::MemTracker::Snapshot,
std::allocator<doris::MemTracker::Snapshot>>*, int)
\ndoris_branch-2.0/doris/be/src/runtime/memory/mem_tracker_limiter.cpp:202:44
#2 0x557a3c22258b in
doris::MemTrackerLimiter::log_process_usage_str[abi:cxx11]()
\ndoris_branch-2.0/doris/be/src/runtime/memory/mem_tracker_limiter.cpp:261:5
#3 0x557a3c223035 in doris::MemTrackerLimiter::print_log_process_usage()
\ndoris_branch-2.0/doris/be/src/runtime/memory/mem_tracker_limiter.cpp:284:25
#4 0x557a39400209 in doris::Daemon::memory_gc_thread()
\ndoris_branch-2.0/doris/be/src/common/daemon.cpp:264:13
#5 0x557a394081fb in doris::Daemon::start()::$_2::operator()() const
\ndoris_branch-2.0/doris/be/src/common/daemon.cpp:459:60
#6 0x557a394081a6 in void std::__invoke_impl<void,
doris::Daemon::start()::$_2&>(std::__invoke_other,
doris::Daemon::start()::$_2&)
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/invoke.h:61:14
#7 0x557a39408128 in std::enable_if<is_invocable_r_v<void,
doris::Daemon::start()::$_2&>, void>::type std::__invoke_r<void,
doris::Daemon::start()::$_2&>(doris::Daemon::start()::$_2&)
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/invoke.h:111:2
#8 0x557a39407f5e in std::_Function_handler<void (),
doris::Daemon::start()::$_2>::_M_invoke(std::_Any_data const&)
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/std_function.h:291:9
#9 0x557a394f89d6 in std::function<void ()>::operator()() const
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/std_function.h:560:9
#10 0x557a3cbe998f in doris::Thread::supervise_thread(void*)
\ndoris_branch-2.0/doris/be/src/util/thread.cpp:498:5
#11 0x7fcc8739b608 in start_thread
/build/glibc-SzIz7B/glibc-2.31/nptl/pthread_create.c:477:8
#12 0x7fcc87648132 in __clone
/build/glibc-SzIz7B/glibc-2.31/misc/../sysdeps/unix/sysv/linux/x86_64/clone.S:95
0x60f000d71e68 is located 120 bytes inside of 168-byte region
[0x60f000d71df0,0x60f000d71e98)
freed by thread T1213 (TaskWorkerPool.) here:
#0 0x557a3930fd9d in operator delete(void*)
(/mnt/hdd01/STRESS_ENV/be/lib/doris_be+0x191f0d9d) (BuildId: cd0297ed13795481)
#1 0x557a397fc76e in
__gnu_cxx::new_allocator<std::_Sp_counted_ptr_inplace<doris::MemTrackerLimiter,
std::allocator<doris::MemTrackerLimiter>,
(__gnu_cxx::_Lock_policy)2>>::deallocate(std::_Sp_counted_ptr_inplace<doris::MemTrackerLimiter,
std::allocator<doris::MemTrackerLimiter>, (__gnu_cxx::_Lock_policy)2>*,
unsigned long)
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/ext/new_allocator.h:139:2
#2 0x557a397fc730 in
std::allocator<std::_Sp_counted_ptr_inplace<doris::MemTrackerLimiter,
std::allocator<doris::MemTrackerLimiter>,
(__gnu_cxx::_Lock_policy)2>>::deallocate(std::_Sp_counted_ptr_inplace<doris::MemTrackerLimiter,
std::allocator<doris::MemTrackerLimiter>, (__gnu_cxx::_Lock_policy)2>*,
unsigned long)
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/allocator.h:187:27
#3 0x557a397fc730 in
std::allocator_traits<std::allocator<std::_Sp_counted_ptr_inplace<doris::MemTrackerLimiter,
std::allocator<doris::MemTrackerLimiter>,
(__gnu_cxx::_Lock_policy)2>>>::deallocate(std::allocator<std::_Sp_counted_ptr_inplace<doris::MemTrackerLimiter,
std::allocator<doris::MemTrackerLimiter>, (__gnu_cxx::_Lock_policy)2>>&,
std::_Sp_counted_ptr_inplace<doris::MemTrackerLimiter,
std::allocator<doris::MemTrackerLimiter>, (__gnu_cxx::_Lock_policy)2>*,
unsigned long)
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/alloc_traits.h:492:13
#4 0x557a397fbe27 in
std::__allocated_ptr<std::allocator<std::_Sp_counted_ptr_inplace<doris::MemTrackerLimiter,
std::allocator<doris::MemTrackerLimiter>,
(__gnu_cxx::_Lock_policy)2>>>::~__allocated_ptr()
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/allocated_ptr.h:73:4
#5 0x557a397fc34e in
std::_Sp_counted_ptr_inplace<doris::MemTrackerLimiter,
std::allocator<doris::MemTrackerLimiter>,
(__gnu_cxx::_Lock_policy)2>::_M_destroy()
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/shared_ptr_base.h:538:7
#6 0x557a3932d6ac in
std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release()
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/shared_ptr_base.h:184:10
#7 0x557a3932d149 in
std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count()
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/shared_ptr_base.h:702:11
#8 0x557a3941727a in std::__shared_ptr<doris::MemTrackerLimiter,
(__gnu_cxx::_Lock_policy)2>::~__shared_ptr()
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/shared_ptr_base.h:1149:31
#9 0x557a39416dd4 in
std::shared_ptr<doris::MemTrackerLimiter>::~shared_ptr()
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/shared_ptr.h:122:11
#10 0x557a3b8808ba in
doris::EngineAlterTabletTask::~EngineAlterTabletTask()
\ndoris_branch-2.0/doris/be/src/olap/task/engine_alter_tablet_task.h:37:47
#11 0x557a3b85da83 in
doris::AlterTableTaskPool::_alter_tablet(doris::TAgentTaskRequest const&, long,
doris::TTaskType::type, doris::TFinishTaskRequest*)
\ndoris_branch-2.0/doris/be/src/agent/task_worker_pool.cpp:1768:5
```
## 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]