jacktengg opened a new pull request, #20534:
URL: https://github.com/apache/doris/pull/20534
## Proposed changes
Issue Number: close #xxx
Be coredump when running regressiont tests:
```
=3073084==ERROR: AddressSanitizer: heap-buffer-overflow on address
0x60601897db80 at pc 0x55b2c993666e bp 0x7d1fbbfb66b0 sp 0x7d1fbbfb66a8
READ of size 8 at 0x60601897db80 thread T610 (_scanner_scan)
#0 0x55b2c993666d in std::__shared_ptr<doris::vectorized::VExprContext,
(__gnu_cxx::_Lock_policy)2>::get() const
/mnt/disk2/tengjianping/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/shared_ptr_base.h:1291:16
#1 0x55b2dae86ec5 in
doris::vectorized::VExprContext::clone(doris::RuntimeState*,
std::shared_ptr<doris::vectorized::VExprContext>&)
/mnt/disk2/tengjianping/doris-master/be/src/vec/exprs/vexpr_context.cpp:98:5
#2 0x55b2e757b6d8 in
doris::vectorized::VScanner::prepare(doris::RuntimeState*,
std::vector<std::shared_ptr<doris::vectorized::VExprContext>,
std::allocator<std::shared_ptr<doris::vectorized::VExprContext>>> const&)
/mnt/disk2/tengjianping/doris-master/be/src/vec/exec/scan/vscanner.cpp:47:13
#3 0x55b2e78e8155 in doris::vectorized::NewOlapScanner::init()
/mnt/disk2/tengjianping/doris-master/be/src/vec/exec/scan/new_olap_scanner.cpp:109:5
#4 0x55b2e7551c81 in
doris::vectorized::ScannerScheduler::_scanner_scan(doris::vectorized::ScannerScheduler*,
doris::vectorized::ScannerContext*,
std::shared_ptr<doris::vectorized::VScanner>)
/mnt/disk2/tengjianping/doris-master/be/src/vec/exec/scan/scanner_scheduler.cpp:279:27
#5 0x55b2e7554d5e in
doris::vectorized::ScannerScheduler::_schedule_scanners(doris::vectorized::ScannerContext*)::$_0::operator()()
const::'lambda0'()::operator()() const
/mnt/disk2/tengjianping/doris-master/be/src/vec/exec/scan/scanner_scheduler.cpp:202:31
#6 0x55b2e7554c14 in void std::__invoke_impl<void,
doris::vectorized::ScannerScheduler::_schedule_scanners(doris::vectorized::ScannerContext*)::$_0::operator()()
const::'lambda0'()&>(std::__invoke_other,
doris::vectorized::ScannerScheduler::_schedule_scanners(doris::vectorized::ScannerContext*)::$_0::operator()()
const::'lambda0'()&)
/mnt/disk2/tengjianping/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/invoke.h:61:14
#7 0x55b2e7554bb4 in std::enable_if<is_invocable_r_v<void,
doris::vectorized::ScannerScheduler::_schedule_scanners(doris::vectorized::ScannerContext*)::$_0::operator()()
const::'lambda0'()&>, void>::type std::__invoke_r<void,
doris::vectorized::ScannerScheduler::_schedule_scanners(doris::vectorized::ScannerContext*)::$_0::operator()()
const::'lambda0'()&>(doris::vectorized::ScannerScheduler::_schedule_scanners(doris::vectorized::ScannerContext*)::$_0::operator()()
const::'lambda0'()&)
/mnt/disk2/tengjianping/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/invoke.h:111:2
#8 0x55b2e7554a1c in std::_Function_handler<void (),
doris::vectorized::ScannerScheduler::_schedule_scanners(doris::vectorized::ScannerContext*)::$_0::operator()()
const::'lambda0'()>::_M_invoke(std::_Any_data const&)
/mnt/disk2/tengjianping/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/std_function.h:291:9
#9 0x55b2c80f2cd2 in std::function<void ()>::operator()() const
/mnt/disk2/tengjianping/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/std_function.h:560:9
#10 0x55b2e755f3e4 in
doris::PriorityWorkStealingThreadPool::work_thread(int)
/mnt/disk2/tengjianping/doris-master/be/src/util/priority_work_stealing_thread_pool.hpp:135:17
#11 0x55b2e7563c72 in void std::__invoke_impl<void, void
(doris::PriorityWorkStealingThreadPool::* const&)(int),
doris::PriorityWorkStealingThreadPool*&, int&>(std::__invoke_memfun_deref, void
(doris::PriorityWorkStealingThreadPool::* const&)(int),
doris::PriorityWorkStealingThreadPool*&, int&)
/mnt/disk2/tengjianping/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/invoke.h:74:14
#12 0x55b2e7563b44 in std::__invoke_result<void
(doris::PriorityWorkStealingThreadPool::* const&)(int),
doris::PriorityWorkStealingThreadPool*&, int&>::type std::__invoke<void
(doris::PriorityWorkStealingThreadPool::* const&)(int),
doris::PriorityWorkStealingThreadPool*&, int&>(void
(doris::PriorityWorkStealingThreadPool::* const&)(int),
doris::PriorityWorkStealingThreadPool*&, int&)
/mnt/disk2/tengjianping/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/invoke.h:96:14
#13 0x55b2e7563b14 in decltype(std::__invoke((*this)._M_pmf,
std::forward<doris::PriorityWorkStealingThreadPool*&>(fp),
std::forward<int&>(fp))) std::_Mem_fn_base<void
(doris::PriorityWorkStealingThreadPool::*)(int),
true>::operator()<doris::PriorityWorkStealingThreadPool*&,
int&>(doris::PriorityWorkStealingThreadPool*&, int&) const
/mnt/disk2/tengjianping/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/functional:131:11
#14 0x55b2e7563ae4 in void std::__invoke_impl<void, std::_Mem_fn<void
(doris::PriorityWorkStealingThreadPool::*)(int)>&,
doris::PriorityWorkStealingThreadPool*&, int&>(std::__invoke_other,
std::_Mem_fn<void (doris::PriorityWorkStealingThreadPool::*)(int)>&,
doris::PriorityWorkStealingThreadPool*&, int&)
/mnt/disk2/tengjianping/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/invoke.h:61:14
#15 0x55b2e7563a54 in std::enable_if<is_invocable_r_v<void,
std::_Mem_fn<void (doris::PriorityWorkStealingThreadPool::*)(int)>&,
doris::PriorityWorkStealingThreadPool*&, int&>, void>::type
std::__invoke_r<void, std::_Mem_fn<void
(doris::PriorityWorkStealingThreadPool::*)(int)>&,
doris::PriorityWorkStealingThreadPool*&, int&>(std::_Mem_fn<void
(doris::PriorityWorkStealingThreadPool::*)(int)>&,
doris::PriorityWorkStealingThreadPool*&, int&)
/mnt/disk2/tengjianping/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/invoke.h:111:2
#16 0x55b2e75639c3 in void std::_Bind_result<void, std::_Mem_fn<void
(doris::PriorityWorkStealingThreadPool::*)(int)>
(doris::PriorityWorkStealingThreadPool*, int)>::__call<void, 0ul,
1ul>(std::tuple<>&&, std::_Index_tuple<0ul, 1ul>)
/mnt/disk2/tengjianping/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/functional:570:11
#17 0x55b2e756382d in void std::_Bind_result<void, std::_Mem_fn<void
(doris::PriorityWorkStealingThreadPool::*)(int)>
(doris::PriorityWorkStealingThreadPool*, int)>::operator()<>()
/mnt/disk2/tengjianping/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/functional:629:17
#18 0x55b2e7563744 in void std::__invoke_impl<void,
std::_Bind_result<void, std::_Mem_fn<void
(doris::PriorityWorkStealingThreadPool::*)(int)>
(doris::PriorityWorkStealingThreadPool*, int)>>(std::__invoke_other,
std::_Bind_result<void, std::_Mem_fn<void
(doris::PriorityWorkStealingThreadPool::*)(int)>
(doris::PriorityWorkStealingThreadPool*, int)>&&)
/mnt/disk2/tengjianping/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/invoke.h:61:14
#19 0x55b2e7563704 in std::__invoke_result<std::_Bind_result<void,
std::_Mem_fn<void (doris::PriorityWorkStealingThreadPool::*)(int)>
(doris::PriorityWorkStealingThreadPool*, int)>>::type
std::__invoke<std::_Bind_result<void, std::_Mem_fn<void
(doris::PriorityWorkStealingThreadPool::*)(int)>
(doris::PriorityWorkStealingThreadPool*, int)>>(std::_Bind_result<void,
std::_Mem_fn<void (doris::PriorityWorkStealingThreadPool::*)(int)>
(doris::PriorityWorkStealingThreadPool*, int)>&&)
/mnt/disk2/tengjianping/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/invoke.h:96:14
#20 0x55b2e75636dc in void
std::thread::_Invoker<std::tuple<std::_Bind_result<void, std::_Mem_fn<void
(doris::PriorityWorkStealingThreadPool::*)(int)>
(doris::PriorityWorkStealingThreadPool*,
int)>>>::_M_invoke<0ul>(std::_Index_tuple<0ul>)
/mnt/disk2/tengjianping/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/std_thread.h:253:13
#21 0x55b2e75636b4 in
std::thread::_Invoker<std::tuple<std::_Bind_result<void, std::_Mem_fn<void
(doris::PriorityWorkStealingThreadPool::*)(int)>
(doris::PriorityWorkStealingThreadPool*, int)>>>::operator()()
/mnt/disk2/tengjianping/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/std_thread.h:260:11
#22 0x55b2e7563638 in
std::thread::_State_impl<std::thread::_Invoker<std::tuple<std::_Bind_result<void,
std::_Mem_fn<void (doris::PriorityWorkStealingThreadPool::*)(int)>
(doris::PriorityWorkStealingThreadPool*, int)>>>>::_M_run()
/mnt/disk2/tengjianping/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/std_thread.h:211:13
#23 0x55b2eb41d0ef in execute_native_thread_routine
/data/gcc-11.1.0/build/x86_64-pc-linux-gnu/libstdc++-v3/src/c++11/../../../../../libstdc++-v3/src/c++11/thread.cc:82:18
#24 0x7f1dfd4e1179 in start_thread pthread_create.c
#25 0x7f1dfdd7bdf2 in clone (/lib64/libc.so.6+0xfcdf2) (BuildId:
20ee73ce1b6ac38a52440bab82ec7e28f0f5c5b9)
0x60601897db80 is located 0 bytes after 64-byte region
[0x60601897db40,0x60601897db80)
allocated by thread T610 (_scanner_scan) here:
#0 0x55b2c7fdffad in operator new(unsigned long)
(/mnt/disk2/tengjianping/doris-master/output/be/lib/doris_be+0x158f4fad)
(BuildId: 4bba8f0efb1a9ae7)
#1 0x55b2c951fd09 in
__gnu_cxx::new_allocator<std::shared_ptr<doris::vectorized::VExprContext>>::allocate(unsigned
long, void const*)
/mnt/disk2/tengjianping/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/ext/new_allocator.h:121:27
#2 0x55b2c951fc90 in
std::allocator<std::shared_ptr<doris::vectorized::VExprContext>>::allocate(unsigned
long)
/mnt/disk2/tengjianping/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/allocator.h:173:32
#3 0x55b2c951fc90 in
std::allocator_traits<std::allocator<std::shared_ptr<doris::vectorized::VExprContext>>>::allocate(std::allocator<std::shared_ptr<doris::vectorized::VExprContext>>&,
unsigned long)
/mnt/disk2/tengjianping/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/alloc_traits.h:460:20
#4 0x55b2c951f99f in
std::_Vector_base<std::shared_ptr<doris::vectorized::VExprContext>,
std::allocator<std::shared_ptr<doris::vectorized::VExprContext>>>::_M_allocate(unsigned
long)
/mnt/disk2/tengjianping/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/stl_vector.h:346:20
#5 0x55b2d7e084fc in
std::vector<std::shared_ptr<doris::vectorized::VExprContext>,
std::allocator<std::shared_ptr<doris::vectorized::VExprContext>>>::_M_default_append(unsigned
long)
/mnt/disk2/tengjianping/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/vector.tcc:635:34
#6 0x55b2d74bf0e5 in
std::vector<std::shared_ptr<doris::vectorized::VExprContext>,
std::allocator<std::shared_ptr<doris::vectorized::VExprContext>>>::resize(unsigned
long)
/mnt/disk2/tengjianping/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/stl_vector.h:940:4
#7 0x55b2e757b651 in
doris::vectorized::VScanner::prepare(doris::RuntimeState*,
std::vector<std::shared_ptr<doris::vectorized::VExprContext>,
std::allocator<std::shared_ptr<doris::vectorized::VExprContext>>> const&)
/mnt/disk2/tengjianping/doris-master/be/src/vec/exec/scan/vscanner.cpp:45:20
#8 0x55b2e78e8155 in doris::vectorized::NewOlapScanner::init()
/mnt/disk2/tengjianping/doris-master/be/src/vec/exec/scan/new_olap_scanner.cpp:109:5
#9 0x55b2e7551c81 in
doris::vectorized::ScannerScheduler::_scanner_scan(doris::vectorized::ScannerScheduler*,
doris::vectorized::ScannerContext*,
std::shared_ptr<doris::vectorized::VScanner>)
/mnt/disk2/tengjianping/doris-master/be/src/vec/exec/scan/scanner_scheduler.cpp:279:27
#10 0x55b2e7554d5e in
doris::vectorized::ScannerScheduler::_schedule_scanners(doris::vectorized::ScannerContext*)::$_0::operator()()
const::'lambda0'()::operator()() const
/mnt/disk2/tengjianping/doris-master/be/src/vec/exec/scan/scanner_scheduler.cpp:202:31
#11 0x55b2e7554c14 in void std::__invoke_impl<void,
doris::vectorized::ScannerScheduler::_schedule_scanners(doris::vectorized::ScannerContext*)::$_0::operator()()
const::'lambda0'()&>(std::__invoke_other,
doris::vectorized::ScannerScheduler::_schedule_scanners(doris::vectorized::ScannerContext*)::$_0::operator()()
const::'lambda0'()&)
/mnt/disk2/tengjianping/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/invoke.h:61:14
#12 0x55b2e7554bb4 in std::enable_if<is_invocable_r_v<void,
doris::vectorized::ScannerScheduler::_schedule_scanners(doris::vectorized::ScannerContext*)::$_0::operator()()
const::'lambda0'()&>, void>::type std::__invoke_r<void,
doris::vectorized::ScannerScheduler::_schedule_scanners(doris::vectorized::ScannerContext*)::$_0::operator()()
const::'lambda0'()&>(doris::vectorized::ScannerScheduler::_schedule_scanners(doris::vectorized::ScannerContext*)::$_0::operator()()
const::'lambda0'()&)
/mnt/disk2/tengjianping/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/invoke.h:111:2
#13 0x55b2e7554a1c in std::_Function_handler<void (),
doris::vectorized::ScannerScheduler::_schedule_scanners(doris::vectorized::ScannerContext*)::$_0::operator()()
const::'lambda0'()>::_M_invoke(std::_Any_data const&)
/mnt/disk2/tengjianping/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/std_function.h:291:9
#14 0x55b2c80f2cd2 in std::function<void ()>::operator()() const
/mnt/disk2/tengjianping/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/std_function.h:560:9
#15 0x55b2e755f3e4 in
doris::PriorityWorkStealingThreadPool::work_thread(int)
/mnt/disk2/tengjianping/doris-master/be/src/util/priority_work_stealing_thread_pool.hpp:135:17
#16 0x55b2e7563c72 in void std::__invoke_impl<void, void
(doris::PriorityWorkStealingThreadPool::* const&)(int),
doris::PriorityWorkStealingThreadPool*&, int&>(std::__invoke_memfun_deref, void
(doris::PriorityWorkStealingThreadPool::* const&)(int),
doris::PriorityWorkStealingThreadPool*&, int&)
/mnt/disk2/tengjianping/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/invoke.h:74:14
#17 0x55b2e7563b44 in std::__invoke_result<void
(doris::PriorityWorkStealingThreadPool::* const&)(int),
doris::PriorityWorkStealingThreadPool*&, int&>::type std::__invoke<void
(doris::PriorityWorkStealingThreadPool::* const&)(int),
doris::PriorityWorkStealingThreadPool*&, int&>(void
(doris::PriorityWorkStealingThreadPool::* const&)(int),
doris::PriorityWorkStealingThreadPool*&, int&)
/mnt/disk2/tengjianping/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/invoke.h:96:14
#18 0x55b2e7563b14 in decltype(std::__invoke((*this)._M_pmf,
std::forward<doris::PriorityWorkStealingThreadPool*&>(fp),
std::forward<int&>(fp))) std::_Mem_fn_base<void
(doris::PriorityWorkStealingThreadPool::*)(int),
true>::operator()<doris::PriorityWorkStealingThreadPool*&,
int&>(doris::PriorityWorkStealingThreadPool*&, int&) const
/mnt/disk2/tengjianping/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/functional:131:11
#19 0x55b2e7563ae4 in void std::__invoke_impl<void, std::_Mem_fn<void
(doris::PriorityWorkStealingThreadPool::*)(int)>&,
doris::PriorityWorkStealingThreadPool*&, int&>(std::__invoke_other,
std::_Mem_fn<void (doris::PriorityWorkStealingThreadPool::*)(int)>&,
doris::PriorityWorkStealingThreadPool*&, int&)
/mnt/disk2/tengjianping/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/invoke.h:61:14
#20 0x55b2e7563a54 in std::enable_if<is_invocable_r_v<void,
std::_Mem_fn<void (doris::PriorityWorkStealingThreadPool::*)(int)>&,
doris::PriorityWorkStealingThreadPool*&, int&>, void>::type
std::__invoke_r<void, std::_Mem_fn<void
(doris::PriorityWorkStealingThreadPool::*)(int)>&,
doris::PriorityWorkStealingThreadPool*&, int&>(std::_Mem_fn<void
(doris::PriorityWorkStealingThreadPool::*)(int)>&,
doris::PriorityWorkStealingThreadPool*&, int&)
/mnt/disk2/tengjianping/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/invoke.h:111:2
#21 0x55b2e75639c3 in void std::_Bind_result<void, std::_Mem_fn<void
(doris::PriorityWorkStealingThreadPool::*)(int)>
(doris::PriorityWorkStealingThreadPool*, int)>::__call<void, 0ul,
1ul>(std::tuple<>&&, std::_Index_tuple<0ul, 1ul>)
/mnt/disk2/tengjianping/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/functional:570:11
#22 0x55b2e756382d in void std::_Bind_result<void, std::_Mem_fn<void
(doris::PriorityWorkStealingThreadPool::*)(int)>
(doris::PriorityWorkStealingThreadPool*, int)>::operator()<>()
/mnt/disk2/tengjianping/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/functional:629:17
#23 0x55b2e7563744 in void std::__invoke_impl<void,
std::_Bind_result<void, std::_Mem_fn<void
(doris::PriorityWorkStealingThreadPool::*)(int)>
(doris::PriorityWorkStealingThreadPool*, int)>>(std::__invoke_other,
std::_Bind_result<void, std::_Mem_fn<void
(doris::PriorityWorkStealingThreadPool::*)(int)>
(doris::PriorityWorkStealingThreadPool*, int)>&&)
/mnt/disk2/tengjianping/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/invoke.h:61:14
#24 0x55b2e7563704 in std::__invoke_result<std::_Bind_result<void,
std::_Mem_fn<void (doris::PriorityWorkStealingThreadPool::*)(int)>
(doris::PriorityWorkStealingThreadPool*, int)>>::type
std::__invoke<std::_Bind_result<void, std::_Mem_fn<void
(doris::PriorityWorkStealingThreadPool::*)(int)>
(doris::PriorityWorkStealingThreadPool*, int)>>(std::_Bind_result<void,
std::_Mem_fn<void (doris::PriorityWorkStealingThreadPool::*)(int)>
(doris::PriorityWorkStealingThreadPool*, int)>&&)
/mnt/disk2/tengjianping/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/invoke.h:96:14
#25 0x55b2e75636dc in void
std::thread::_Invoker<std::tuple<std::_Bind_result<void, std::_Mem_fn<void
(doris::PriorityWorkStealingThreadPool::*)(int)>
(doris::PriorityWorkStealingThreadPool*,
int)>>>::_M_invoke<0ul>(std::_Index_tuple<0ul>)
/mnt/disk2/tengjianping/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/std_thread.h:253:13
#26 0x55b2e75636b4 in
std::thread::_Invoker<std::tuple<std::_Bind_result<void, std::_Mem_fn<void
(doris::PriorityWorkStealingThreadPool::*)(int)>
(doris::PriorityWorkStealingThreadPool*, int)>>>::operator()()
/mnt/disk2/tengjianping/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/std_thread.h:260:11
#27 0x55b2e7563638 in
std::thread::_State_impl<std::thread::_Invoker<std::tuple<std::_Bind_result<void,
std::_Mem_fn<void (doris::PriorityWorkStealingThreadPool::*)(int)>
(doris::PriorityWorkStealingThreadPool*, int)>>>>::_M_run()
/mnt/disk2/tengjianping/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/std_thread.h:211:13
#28 0x55b2eb41d0ef in execute_native_thread_routine
/data/gcc-11.1.0/build/x86_64-pc-linux-gnu/libstdc++-v3/src/c++11/../../../../../libstdc++-v3/src/c++11/thread.cc:82:18
Thread T610 (_scanner_scan) created by T0 here:
#0 0x55b2c7f8dcaa in pthread_create
(/mnt/disk2/tengjianping/doris-master/output/be/lib/doris_be+0x158a2caa)
(BuildId: 4bba8f0efb1a9ae7)
#1 0x55b2eb41d215 in __gthread_create
/data/gcc-11.1.0/build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:663:35
#2 0x55b2eb41d215 in
std::thread::_M_start_thread(std::unique_ptr<std::thread::_State,
std::default_delete<std::thread::_State>>, void (*)())
/data/gcc-11.1.0/build/x86_64-pc-linux-gnu/libstdc++-v3/src/c++11/../../../../../libstdc++-v3/src/c++11/thread.cc:147:37
#3 0x55b2e75632c7 in std::_MakeUniq<std::thread>::__single_object
std::make_unique<std::thread, std::_Bind_result<void, std::_Mem_fn<void
(doris::PriorityWorkStealingThreadPool::*)(int)>
(doris::PriorityWorkStealingThreadPool*, int)>&>(std::_Bind_result<void,
std::_Mem_fn<void (doris::PriorityWorkStealingThreadPool::*)(int)>
(doris::PriorityWorkStealingThreadPool*, int)>&)
/mnt/disk2/tengjianping/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/unique_ptr.h:962:34
#4 0x55b2e755eac8 in std::thread*
doris::ThreadGroup::create_thread<std::_Bind_result<void, std::_Mem_fn<void
(doris::PriorityWorkStealingThreadPool::*)(int)>
(doris::PriorityWorkStealingThreadPool*, int)>>(std::_Bind_result<void,
std::_Mem_fn<void (doris::PriorityWorkStealingThreadPool::*)(int)>
(doris::PriorityWorkStealingThreadPool*, int)>)
/mnt/disk2/tengjianping/doris-master/be/src/util/thread_group.h:65:51
#5 0x55b2e755cf4f in
doris::PriorityWorkStealingThreadPool::PriorityWorkStealingThreadPool(unsigned
int, unsigned int, unsigned int, std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char>> const&)
/mnt/disk2/tengjianping/doris-master/be/src/util/priority_work_stealing_thread_pool.hpp:49:22
#6 0x55b2e754e4a8 in
doris::vectorized::ScannerScheduler::init(doris::ExecEnv*)
/mnt/disk2/tengjianping/doris-master/be/src/vec/exec/scan/scanner_scheduler.cpp:94:39
#7 0x55b2ca6702a1 in doris::ExecEnv::_init(std::vector<doris::StorePath,
std::allocator<doris::StorePath>> const&)
/mnt/disk2/tengjianping/doris-master/be/src/runtime/exec_env_init.cpp:177:25
#8 0x55b2ca66e0b7 in doris::ExecEnv::init(doris::ExecEnv*,
std::vector<doris::StorePath, std::allocator<doris::StorePath>> const&)
/mnt/disk2/tengjianping/doris-master/be/src/runtime/exec_env_init.cpp:98:17
#9 0x55b2c7fe7758 in main
/mnt/disk2/tengjianping/doris-master/be/src/service/doris_main.cpp:432:5
#10 0x7f1dfdca2492 in __libc_start_main (/lib64/libc.so.6+0x23492)
(BuildId: 20ee73ce1b6ac38a52440bab82ec7e28f0f5c5b9)
SUMMARY: AddressSanitizer: heap-buffer-overflow
/mnt/disk2/tengjianping/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/shared_ptr_base.h:1291:16
in std::__shared_ptr<doris::vectorized::VExprContext,
(__gnu_cxx::_Lock_policy)2>::get() const
Shadow bytes around the buggy address:
0x60601897d900: fd fd fd fd fd fd fd fa fa fa fa fa fd fd fd fd
0x60601897d980: fd fd fd fa fa fa fa fa fa fa fa fa fa fa fa fa
0x60601897da00: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x60601897da80: fa fa fa fa fa fa fa fa fa fa fa fa 00 00 00 00
0x60601897db00: 00 00 00 fa fa fa fa fa 00 00 00 00 00 00 00 00
=>0x60601897db80:[fa]fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x60601897dc00: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x60601897dc80: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x60601897dd00: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x60601897dd80: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x60601897de00: fa fa fa fa fa fa fa fa fd fd fd fd fd fd fd fd
Shadow byte legend (one shadow byte represents 8 application bytes):
Addressable: 00
Partially addressable: 01 02 03 04 05 06 07
Heap left redzone: fa
Freed heap region: fd
Stack left redzone: f1
Stack mid redzone: f2
Stack right redzone: f3
Stack after return: f5
Stack use after scope: f8
Global redzone: f9
Global init order: f6
Poisoned by user: f7
Container overflow: fc
Array cookie: ac
Intra object redzone: bb
ASan internal: fe
Left alloca redzone: ca
Right alloca redzone: cb
==3073084==ABORTING
```
## Further comments
The reason is that when doing scanner init in scanner thread,
VScanNode::_conjuncts may have been modified by other scanner, and visiting
VScanNode::_conjuncts in VScanner::prepare is not synchronized.
```
(gdb) f 9
#9 0x000055b2e757b6d9 in doris::vectorized::VScanner::prepare
(this=0x61a021f31290, state=0x61e000886880,
conjuncts=...) at
/mnt/disk2/tengjianping/doris-master/be/src/vec/exec/scan/vscanner.cpp:47
47 RETURN_IF_ERROR(conjuncts[i]->clone(state,
_conjuncts[i]));
(gdb) pvector conjuncts
... ...
Vector size = 6
Vector capacity = 8
(gdb) pvector _conjuncts
... ...
Vector size = 4
Vector capacity = 4
```
--
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]