Closed TangSiyang2001 closed 1 year ago
current master
When running p0 in CI, found BE crash, and it happended 3 times in 4 runnings total, which may thought to be a problem.
According to be.out, a dangling pointer may happen in ScannerContext::clear_and_join, related to ScannerContext::return_free_block.
ScannerContext::clear_and_join
ScannerContext::return_free_block
be.out
start time: Sat 15 Apr 2023 11:40:29 PM CST WARNING: Logging before InitGoogleLogging() is written to STDERR I0415 23:40:29.853989 1715262 doris_main.cpp:322] enable_fuzzy_mode is true, set fuzzy configs SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found binding in [jar:file:/mnt/ssd01/pipline/OpenSourceDoris/clusterEnv/P0/Cluster2/be/lib/hadoop_hdfs/common/lib/slf4j-reload4j-1.7.36.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: Found binding in [jar:file:/mnt/ssd01/pipline/OpenSourceDoris/clusterEnv/P0/Cluster2/be/lib/java-udf-jar-with-dependencies.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation. SLF4J: Actual binding is of type [org.slf4j.impl.Reload4jLoggerFactory] ================================================================= ==1715262==ERROR: AddressSanitizer: heap-use-after-free on address 0x6030034fe5e8 at pc 0x55dacf08b288 bp 0x7f784cf078b0 sp 0x7f784cf078a0 READ of size 8 at 0x6030034fe5e8 thread T278 (TaskSchedulerTh) #0 0x55dacf08b287 in std::unique_ptr<doris::vectorized::Block, std::default_delete<doris::vectorized::Block> >::~unique_ptr() /var/local/ldb-toolchain/include/c++/11/bits/unique_ptr.h:360 #1 0x55dacf08b287 in void std::_Destroy<std::unique_ptr<doris::vectorized::Block, std::default_delete<doris::vectorized::Block> > >(std::unique_ptr<doris::vectorized::Block, std::default_delete<doris::vectorized::Block> >*) /var/local/ldb-toolchain/include/c++/11/bits/stl_construct.h:140 #2 0x55dacf08b287 in void std::_Destroy_aux<false>::__destroy<std::unique_ptr<doris::vectorized::Block, std::default_delete<doris::vectorized::Block> >*>(std::unique_ptr<doris::vectorized::Block, std::default_delete<doris::vectorized::Block> >*, std::unique_ptr<doris::vectorized::Block, std::default_delete<doris::vectorized::Block> >*) /var/local/ldb-toolchain/include/c++/11/bits/stl_construct.h:152 #3 0x55dacf08b287 in void std::_Destroy<std::unique_ptr<doris::vectorized::Block, std::default_delete<doris::vectorized::Block> >*>(std::unique_ptr<doris::vectorized::Block, std::default_delete<doris::vectorized::Block> >*, std::unique_ptr<doris::vectorized::Block, std::default_delete<doris::vectorized::Block> >*) /var/local/ldb-toolchain/include/c++/11/bits/stl_construct.h:185 #4 0x55dacf08b287 in void std::_Destroy<std::unique_ptr<doris::vectorized::Block, std::default_delete<doris::vectorized::Block> >*, std::unique_ptr<doris::vectorized::Block, std::default_delete<doris::vectorized::Block> > >(std::unique_ptr<doris::vectorized::Block, std::default_delete<doris::vectorized::Block> >*, 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> > >&) /var/local/ldb-toolchain/include/c++/11/bits/alloc_traits.h:746 #5 0x55dacf08b287 in 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> > > >::_M_erase_at_end(std::unique_ptr<doris::vectorized::Block, std::default_delete<doris::vectorized::Block> >*) /var/local/ldb-toolchain/include/c++/11/bits/stl_vector.h:1796 #6 0x55dacf08b287 in 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> > > >::clear() /var/local/ldb-toolchain/include/c++/11/bits/stl_vector.h:1499 #7 0x55dacf08b287 in doris::vectorized::ScannerContext::clear_and_join(doris::vectorized::VScanNode*, doris::RuntimeState*) /root/doris/be/src/vec/exec/scan/scanner_context.cpp:275 #8 0x55dacf100dc3 in doris::vectorized::VScanNode::release_resource(doris::RuntimeState*) /root/doris/be/src/vec/exec/scan/vscan_node.cpp:424 #9 0x55dacf7da07d in doris::pipeline::StreamingOperator<doris::pipeline::ScanOperatorBuilder>::close(doris::RuntimeState*) /root/doris/be/src/pipeline/exec/operator.h:349 #10 0x55dacf7ac50f in doris::pipeline::PipelineTask::close() /root/doris/be/src/pipeline/pipeline_task.cpp:231 #11 0x55dacf7c0343 in doris::pipeline::TaskScheduler::_try_close_task(doris::pipeline::PipelineTask*, doris::pipeline::PipelineTaskState) /root/doris/be/src/pipeline/task_scheduler.cpp:302 #12 0x55dacf7ccf1f in doris::pipeline::TaskScheduler::_do_work(unsigned long) /root/doris/be/src/pipeline/task_scheduler.cpp:272 #13 0x55dacf7cd84d in void std::__invoke_impl<void, void (doris::pipeline::TaskScheduler::*&)(unsigned long), doris::pipeline::TaskScheduler*&, unsigned long&>(std::__invoke_memfun_deref, void (doris::pipeline::TaskScheduler::*&)(unsigned long), doris::pipeline::TaskScheduler*&, unsigned long&) /var/local/ldb-toolchain/include/c++/11/bits/invoke.h:74 #14 0x55dacf7cd84d in std::__invoke_result<void (doris::pipeline::TaskScheduler::*&)(unsigned long), doris::pipeline::TaskScheduler*&, unsigned long&>::type std::__invoke<void (doris::pipeline::TaskScheduler::*&)(unsigned long), doris::pipeline::TaskScheduler*&, unsigned long&>(void (doris::pipeline::TaskScheduler::*&)(unsigned long), doris::pipeline::TaskScheduler*&, unsigned long&) /var/local/ldb-toolchain/include/c++/11/bits/invoke.h:96 #15 0x55dacf7cd84d in void std::_Bind<void (doris::pipeline::TaskScheduler::*(doris::pipeline::TaskScheduler*, unsigned long))(unsigned long)>::__call<void, , 0ul, 1ul>(std::tuple<>&&, std::_Index_tuple<0ul, 1ul>) /var/local/ldb-toolchain/include/c++/11/functional:420 #16 0x55dacf7cd84d in void std::_Bind<void (doris::pipeline::TaskScheduler::*(doris::pipeline::TaskScheduler*, unsigned long))(unsigned long)>::operator()<, void>() /var/local/ldb-toolchain/include/c++/11/functional:503 #17 0x55dacf7cd84d in void std::__invoke_impl<void, std::_Bind<void (doris::pipeline::TaskScheduler::*(doris::pipeline::TaskScheduler*, unsigned long))(unsigned long)>&>(std::__invoke_other, std::_Bind<void (doris::pipeline::TaskScheduler::*(doris::pipeline::TaskScheduler*, unsigned long))(unsigned long)>&) /var/local/ldb-toolchain/include/c++/11/bits/invoke.h:61 #18 0x55dacf7cd84d in std::enable_if<is_invocable_r_v<void, std::_Bind<void (doris::pipeline::TaskScheduler::*(doris::pipeline::TaskScheduler*, unsigned long))(unsigned long)>&>, void>::type std::__invoke_r<void, std::_Bind<void (doris::pipeline::TaskScheduler::*(doris::pipeline::TaskScheduler*, unsigned long))(unsigned long)>&>(std::_Bind<void (doris::pipeline::TaskScheduler::*(doris::pipeline::TaskScheduler*, unsigned long))(unsigned long)>&) /var/local/ldb-toolchain/include/c++/11/bits/invoke.h:111 #19 0x55dacf7cd84d in std::_Function_handler<void (), std::_Bind<void (doris::pipeline::TaskScheduler::*(doris::pipeline::TaskScheduler*, unsigned long))(unsigned long)> >::_M_invoke(std::_Any_data const&) /var/local/ldb-toolchain/include/c++/11/bits/std_function.h:291 #20 0x55dab81a6070 in std::function<void ()>::operator()() const /var/local/ldb-toolchain/include/c++/11/bits/std_function.h:560 #21 0x55dab81a6070 in doris::FunctionRunnable::run() /root/doris/be/src/util/threadpool.cpp:46 #22 0x55dab81a3f88 in doris::ThreadPool::dispatch_thread() /root/doris/be/src/util/threadpool.cpp:529 #23 0x55dab81a5c25 in void std::__invoke_impl<void, void (doris::ThreadPool::*&)(), doris::ThreadPool*&>(std::__invoke_memfun_deref, void (doris::ThreadPool::*&)(), doris::ThreadPool*&) /var/local/ldb-toolchain/include/c++/11/bits/invoke.h:74 #24 0x55dab81a5c25 in std::__invoke_result<void (doris::ThreadPool::*&)(), doris::ThreadPool*&>::type std::__invoke<void (doris::ThreadPool::*&)(), doris::ThreadPool*&>(void (doris::ThreadPool::*&)(), doris::ThreadPool*&) /var/local/ldb-toolchain/include/c++/11/bits/invoke.h:96 #25 0x55dab81a5c25 in void std::_Bind<void (doris::ThreadPool::*(doris::ThreadPool*))()>::__call<void, , 0ul>(std::tuple<>&&, std::_Index_tuple<0ul>) /var/local/ldb-toolchain/include/c++/11/functional:420 #26 0x55dab81a5c25 in void std::_Bind<void (doris::ThreadPool::*(doris::ThreadPool*))()>::operator()<, void>() /var/local/ldb-toolchain/include/c++/11/functional:503 #27 0x55dab81a5c25 in void std::__invoke_impl<void, std::_Bind<void (doris::ThreadPool::*(doris::ThreadPool*))()>&>(std::__invoke_other, std::_Bind<void (doris::ThreadPool::*(doris::ThreadPool*))()>&) /var/local/ldb-toolchain/include/c++/11/bits/invoke.h:61 #28 0x55dab81a5c25 in std::enable_if<is_invocable_r_v<void, std::_Bind<void (doris::ThreadPool::*(doris::ThreadPool*))()>&>, void>::type std::__invoke_r<void, std::_Bind<void (doris::ThreadPool::*(doris::ThreadPool*))()>&>(std::_Bind<void (doris::ThreadPool::*(doris::ThreadPool*))()>&) /var/local/ldb-toolchain/include/c++/11/bits/invoke.h:111 #29 0x55dab81a5c25 in std::_Function_handler<void (), std::_Bind<void (doris::ThreadPool::*(doris::ThreadPool*))()> >::_M_invoke(std::_Any_data const&) /var/local/ldb-toolchain/include/c++/11/bits/std_function.h:291 #30 0x55dab817ea83 in std::function<void ()>::operator()() const /var/local/ldb-toolchain/include/c++/11/bits/std_function.h:560 #31 0x55dab817ea83 in doris::Thread::supervise_thread(void*) /root/doris/be/src/util/thread.cpp:453 #32 0x7f7967ed5608 in start_thread /build/glibc-SzIz7B/glibc-2.31/nptl/pthread_create.c:477 #33 0x7f7967cab132 in __clone (/lib/x86_64-linux-gnu/libc.so.6+0x11f132) 0x6030034fe5e8 is located 8 bytes inside of 32-byte region [0x6030034fe5e0,0x6030034fe600) freed by thread T267 (TaskSchedulerTh) here: #0 0x55dab54ee767 in operator delete(void*, unsigned long) (/mnt/ssd01/pipline/OpenSourceDoris/clusterEnv/P0/Cluster2/be/lib/doris_be+0xb47a767) #1 0x55dab6e4664e in __gnu_cxx::new_allocator<std::unique_ptr<doris::vectorized::Block, std::default_delete<doris::vectorized::Block> > >::deallocate(std::unique_ptr<doris::vectorized::Block, std::default_delete<doris::vectorized::Block> >*, unsigned long) /var/local/ldb-toolchain/include/c++/11/ext/new_allocator.h:139 #2 0x55dab6e4664e in std::allocator_traits<std::allocator<std::unique_ptr<doris::vectorized::Block, std::default_delete<doris::vectorized::Block> > > >::deallocate(std::allocator<std::unique_ptr<doris::vectorized::Block, std::default_delete<doris::vectorized::Block> > >&, std::unique_ptr<doris::vectorized::Block, std::default_delete<doris::vectorized::Block> >*, unsigned long) /var/local/ldb-toolchain/include/c++/11/bits/alloc_traits.h:492 #3 0x55dab6e4664e in std::_Vector_base<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> > > >::_M_deallocate(std::unique_ptr<doris::vectorized::Block, std::default_delete<doris::vectorized::Block> >*, unsigned long) /var/local/ldb-toolchain/include/c++/11/bits/stl_vector.h:354 #4 0x55dab6e4664e in void 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> > > >::_M_realloc_insert<std::unique_ptr<doris::vectorized::Block, std::default_delete<doris::vectorized::Block> > >(__gnu_cxx::__normal_iterator<std::unique_ptr<doris::vectorized::Block, std::default_delete<doris::vectorized::Block> >*, 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> > > > >, std::unique_ptr<doris::vectorized::Block, std::default_delete<doris::vectorized::Block> >&&) /var/local/ldb-toolchain/include/c++/11/bits/vector.tcc:500 #5 0x55dacf0925f4 in std::unique_ptr<doris::vectorized::Block, std::default_delete<doris::vectorized::Block> >& 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> > > >::emplace_back<std::unique_ptr<doris::vectorized::Block, std::default_delete<doris::vectorized::Block> > >(std::unique_ptr<doris::vectorized::Block, std::default_delete<doris::vectorized::Block> >&&) /var/local/ldb-toolchain/include/c++/11/bits/vector.tcc:121 #6 0x55dacf07eb55 in doris::vectorized::ScannerContext::return_free_block(std::unique_ptr<doris::vectorized::Block, std::default_delete<doris::vectorized::Block> >) /root/doris/be/src/vec/exec/scan/scanner_context.cpp:141 #7 0x55dacf0b8a76 in doris::vectorized::VScanNode::get_next(doris::RuntimeState*, doris::vectorized::Block*, bool*) /root/doris/be/src/vec/exec/scan/vscan_node.cpp:220 #8 0x55dab7a99cac in doris::ExecNode::pull(doris::RuntimeState*, doris::vectorized::Block*, bool*) /root/doris/be/src/exec/exec_node.h:128 #9 0x55dacf7d9b4d in doris::Status std::__invoke_impl<doris::Status, doris::Status (doris::ExecNode::*&)(doris::RuntimeState*, doris::vectorized::Block*, bool*), doris::vectorized::VScanNode*&, doris::RuntimeState*, doris::vectorized::Block*, bool*>(std::__invoke_memfun_deref, doris::Status (doris::ExecNode::*&)(doris::RuntimeState*, doris::vectorized::Block*, bool*), doris::vectorized::VScanNode*&, doris::RuntimeState*&&, doris::vectorized::Block*&&, bool*&&) /var/local/ldb-toolchain/include/c++/11/bits/invoke.h:74 #10 0x55dacf7d9b4d in std::__invoke_result<doris::Status (doris::ExecNode::*&)(doris::RuntimeState*, doris::vectorized::Block*, bool*), doris::vectorized::VScanNode*&, doris::RuntimeState*, doris::vectorized::Block*, bool*>::type std::__invoke<doris::Status (doris::ExecNode::*&)(doris::RuntimeState*, doris::vectorized::Block*, bool*), doris::vectorized::VScanNode*&, doris::RuntimeState*, doris::vectorized::Block*, bool*>(doris::Status (doris::ExecNode::*&)(doris::RuntimeState*, doris::vectorized::Block*, bool*), doris::vectorized::VScanNode*&, doris::RuntimeState*&&, doris::vectorized::Block*&&, bool*&&) /var/local/ldb-toolchain/include/c++/11/bits/invoke.h:97 #11 0x55dacf7d9b4d in doris::Status std::_Bind<doris::Status (doris::ExecNode::*(doris::vectorized::VScanNode*, std::_Placeholder<1>, std::_Placeholder<2>, std::_Placeholder<3>))(doris::RuntimeState*, doris::vectorized::Block*, bool*)>::__call<doris::Status, doris::RuntimeState*&&, doris::vectorized::Block*&&, bool*&&, 0ul, 1ul, 2ul, 3ul>(std::tuple<doris::RuntimeState*&&, doris::vectorized::Block*&&, bool*&&>&&, std::_Index_tuple<0ul, 1ul, 2ul, 3ul>) /var/local/ldb-toolchain/include/c++/11/functional:422 #12 0x55dacf7d9b4d in doris::Status std::_Bind<doris::Status (doris::ExecNode::*(doris::vectorized::VScanNode*, std::_Placeholder<1>, std::_Placeholder<2>, std::_Placeholder<3>))(doris::RuntimeState*, doris::vectorized::Block*, bool*)>::operator()<doris::RuntimeState*, doris::vectorized::Block*, bool*, doris::Status>(doris::RuntimeState*&&, doris::vectorized::Block*&&, bool*&&) /var/local/ldb-toolchain/include/c++/11/functional:505 #13 0x55dacf7d9b4d in doris::Status std::__invoke_impl<doris::Status, std::_Bind<doris::Status (doris::ExecNode::*(doris::vectorized::VScanNode*, std::_Placeholder<1>, std::_Placeholder<2>, std::_Placeholder<3>))(doris::RuntimeState*, doris::vectorized::Block*, bool*)>&, doris::RuntimeState*, doris::vectorized::Block*, bool*>(std::__invoke_other, std::_Bind<doris::Status (doris::ExecNode::*(doris::vectorized::VScanNode*, std::_Placeholder<1>, std::_Placeholder<2>, std::_Placeholder<3>))(doris::RuntimeState*, doris::vectorized::Block*, bool*)>&, doris::RuntimeState*&&, doris::vectorized::Block*&&, bool*&&) /var/local/ldb-toolchain/include/c++/11/bits/invoke.h:61 #14 0x55dacf7d9b4d in std::enable_if<is_invocable_r_v<doris::Status, std::_Bind<doris::Status (doris::ExecNode::*(doris::vectorized::VScanNode*, std::_Placeholder<1>, std::_Placeholder<2>, std::_Placeholder<3>))(doris::RuntimeState*, doris::vectorized::Block*, bool*)>&, doris::RuntimeState*, doris::vectorized::Block*, bool*>, doris::Status>::type std::__invoke_r<doris::Status, std::_Bind<doris::Status (doris::ExecNode::*(doris::vectorized::VScanNode*, std::_Placeholder<1>, std::_Placeholder<2>, std::_Placeholder<3>))(doris::RuntimeState*, doris::vectorized::Block*, bool*)>&, doris::RuntimeState*, doris::vectorized::Block*, bool*>(std::_Bind<doris::Status (doris::ExecNode::*(doris::vectorized::VScanNode*, std::_Placeholder<1>, std::_Placeholder<2>, std::_Placeholder<3>))(doris::RuntimeState*, doris::vectorized::Block*, bool*)>&, doris::RuntimeState*&&, doris::vectorized::Block*&&, bool*&&) /var/local/ldb-toolchain/include/c++/11/bits/invoke.h:116 #15 0x55dacf7d9b4d in std::_Function_handler<doris::Status (doris::RuntimeState*, doris::vectorized::Block*, bool*), std::_Bind<doris::Status (doris::ExecNode::*(doris::vectorized::VScanNode*, std::_Placeholder<1>, std::_Placeholder<2>, std::_Placeholder<3>))(doris::RuntimeState*, doris::vectorized::Block*, bool*)> >::_M_invoke(std::_Any_data const&, doris::RuntimeState*&&, doris::vectorized::Block*&&, bool*&&) /var/local/ldb-toolchain/include/c++/11/bits/std_function.h:292 #16 0x55dab7a9422d in std::function<doris::Status (doris::RuntimeState*, doris::vectorized::Block*, bool*)>::operator()(doris::RuntimeState*, doris::vectorized::Block*, bool*) const /var/local/ldb-toolchain/include/c++/11/bits/std_function.h:560 #17 0x55dab7a9422d in doris::ExecNode::get_next_after_projects(doris::RuntimeState*, doris::vectorized::Block*, bool*, std::function<doris::Status (doris::RuntimeState*, doris::vectorized::Block*, bool*)> const&, bool) /root/doris/be/src/exec/exec_node.cpp:586 #18 0x55dacf7df034 in doris::pipeline::SourceOperator<doris::pipeline::ScanOperatorBuilder>::get_block(doris::RuntimeState*, doris::vectorized::Block*, doris::pipeline::SourceState&) /root/doris/be/src/pipeline/exec/operator.h:400 #19 0x55dacf7a8aaf in doris::pipeline::PipelineTask::execute(bool*) /root/doris/be/src/pipeline/pipeline_task.cpp:188 #20 0x55dacf7cb3e6 in doris::pipeline::TaskScheduler::_do_work(unsigned long) /root/doris/be/src/pipeline/task_scheduler.cpp:249 #21 0x55dacf7cd84d in void std::__invoke_impl<void, void (doris::pipeline::TaskScheduler::*&)(unsigned long), doris::pipeline::TaskScheduler*&, unsigned long&>(std::__invoke_memfun_deref, void (doris::pipeline::TaskScheduler::*&)(unsigned long), doris::pipeline::TaskScheduler*&, unsigned long&) /var/local/ldb-toolchain/include/c++/11/bits/invoke.h:74 #22 0x55dacf7cd84d in std::__invoke_result<void (doris::pipeline::TaskScheduler::*&)(unsigned long), doris::pipeline::TaskScheduler*&, unsigned long&>::type std::__invoke<void (doris::pipeline::TaskScheduler::*&)(unsigned long), doris::pipeline::TaskScheduler*&, unsigned long&>(void (doris::pipeline::TaskScheduler::*&)(unsigned long), doris::pipeline::TaskScheduler*&, unsigned long&) /var/local/ldb-toolchain/include/c++/11/bits/invoke.h:96 #23 0x55dacf7cd84d in void std::_Bind<void (doris::pipeline::TaskScheduler::*(doris::pipeline::TaskScheduler*, unsigned long))(unsigned long)>::__call<void, , 0ul, 1ul>(std::tuple<>&&, std::_Index_tuple<0ul, 1ul>) /var/local/ldb-toolchain/include/c++/11/functional:420 #24 0x55dacf7cd84d in void std::_Bind<void (doris::pipeline::TaskScheduler::*(doris::pipeline::TaskScheduler*, unsigned long))(unsigned long)>::operator()<, void>() /var/local/ldb-toolchain/include/c++/11/functional:503 #25 0x55dacf7cd84d in void std::__invoke_impl<void, std::_Bind<void (doris::pipeline::TaskScheduler::*(doris::pipeline::TaskScheduler*, unsigned long))(unsigned long)>&>(std::__invoke_other, std::_Bind<void (doris::pipeline::TaskScheduler::*(doris::pipeline::TaskScheduler*, unsigned long))(unsigned long)>&) /var/local/ldb-toolchain/include/c++/11/bits/invoke.h:61 #26 0x55dacf7cd84d in std::enable_if<is_invocable_r_v<void, std::_Bind<void (doris::pipeline::TaskScheduler::*(doris::pipeline::TaskScheduler*, unsigned long))(unsigned long)>&>, void>::type std::__invoke_r<void, std::_Bind<void (doris::pipeline::TaskScheduler::*(doris::pipeline::TaskScheduler*, unsigned long))(unsigned long)>&>(std::_Bind<void (doris::pipeline::TaskScheduler::*(doris::pipeline::TaskScheduler*, unsigned long))(unsigned long)>&) /var/local/ldb-toolchain/include/c++/11/bits/invoke.h:111 #27 0x55dacf7cd84d in std::_Function_handler<void (), std::_Bind<void (doris::pipeline::TaskScheduler::*(doris::pipeline::TaskScheduler*, unsigned long))(unsigned long)> >::_M_invoke(std::_Any_data const&) /var/local/ldb-toolchain/include/c++/11/bits/std_function.h:291 #28 0x55dab81a6070 in std::function<void ()>::operator()() const /var/local/ldb-toolchain/include/c++/11/bits/std_function.h:560 #29 0x55dab81a6070 in doris::FunctionRunnable::run() /root/doris/be/src/util/threadpool.cpp:46 #30 0x55dab81a3f88 in doris::ThreadPool::dispatch_thread() /root/doris/be/src/util/threadpool.cpp:529 #31 0x55dab81a5c25 in void std::__invoke_impl<void, void (doris::ThreadPool::*&)(), doris::ThreadPool*&>(std::__invoke_memfun_deref, void (doris::ThreadPool::*&)(), doris::ThreadPool*&) /var/local/ldb-toolchain/include/c++/11/bits/invoke.h:74 #32 0x55dab81a5c25 in std::__invoke_result<void (doris::ThreadPool::*&)(), doris::ThreadPool*&>::type std::__invoke<void (doris::ThreadPool::*&)(), doris::ThreadPool*&>(void (doris::ThreadPool::*&)(), doris::ThreadPool*&) /var/local/ldb-toolchain/include/c++/11/bits/invoke.h:96 #33 0x55dab81a5c25 in void std::_Bind<void (doris::ThreadPool::*(doris::ThreadPool*))()>::__call<void, , 0ul>(std::tuple<>&&, std::_Index_tuple<0ul>) /var/local/ldb-toolchain/include/c++/11/functional:420 #34 0x55dab81a5c25 in void std::_Bind<void (doris::ThreadPool::*(doris::ThreadPool*))()>::operator()<, void>() /var/local/ldb-toolchain/include/c++/11/functional:503 #35 0x55dab81a5c25 in void std::__invoke_impl<void, std::_Bind<void (doris::ThreadPool::*(doris::ThreadPool*))()>&>(std::__invoke_other, std::_Bind<void (doris::ThreadPool::*(doris::ThreadPool*))()>&) /var/local/ldb-toolchain/include/c++/11/bits/invoke.h:61 #36 0x55dab81a5c25 in std::enable_if<is_invocable_r_v<void, std::_Bind<void (doris::ThreadPool::*(doris::ThreadPool*))()>&>, void>::type std::__invoke_r<void, std::_Bind<void (doris::ThreadPool::*(doris::ThreadPool*))()>&>(std::_Bind<void (doris::ThreadPool::*(doris::ThreadPool*))()>&) /var/local/ldb-toolchain/include/c++/11/bits/invoke.h:111 #37 0x55dab81a5c25 in std::_Function_handler<void (), std::_Bind<void (doris::ThreadPool::*(doris::ThreadPool*))()> >::_M_invoke(std::_Any_data const&) /var/local/ldb-toolchain/include/c++/11/bits/std_function.h:291 #38 0x55dab817ea83 in std::function<void ()>::operator()() const /var/local/ldb-toolchain/include/c++/11/bits/std_function.h:560 #39 0x55dab817ea83 in doris::Thread::supervise_thread(void*) /root/doris/be/src/util/thread.cpp:453 #40 0x7f7967ed5608 in start_thread /build/glibc-SzIz7B/glibc-2.31/nptl/pthread_create.c:477 previously allocated by thread T281 (TaskSchedulerTh) here: #0 0x55dab54ed707 in operator new(unsigned long) (/mnt/ssd01/pipline/OpenSourceDoris/clusterEnv/P0/Cluster2/be/lib/doris_be+0xb479707) #1 0x55dab6e46521 in __gnu_cxx::new_allocator<std::unique_ptr<doris::vectorized::Block, std::default_delete<doris::vectorized::Block> > >::allocate(unsigned long, void const*) /var/local/ldb-toolchain/include/c++/11/ext/new_allocator.h:121 #2 0x55dab6e46521 in std::allocator_traits<std::allocator<std::unique_ptr<doris::vectorized::Block, std::default_delete<doris::vectorized::Block> > > >::allocate(std::allocator<std::unique_ptr<doris::vectorized::Block, std::default_delete<doris::vectorized::Block> > >&, unsigned long) /var/local/ldb-toolchain/include/c++/11/bits/alloc_traits.h:460 #3 0x55dab6e46521 in std::_Vector_base<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> > > >::_M_allocate(unsigned long) /var/local/ldb-toolchain/include/c++/11/bits/stl_vector.h:346 #4 0x55dab6e46521 in void 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> > > >::_M_realloc_insert<std::unique_ptr<doris::vectorized::Block, std::default_delete<doris::vectorized::Block> > >(__gnu_cxx::__normal_iterator<std::unique_ptr<doris::vectorized::Block, std::default_delete<doris::vectorized::Block> >*, 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> > > > >, std::unique_ptr<doris::vectorized::Block, std::default_delete<doris::vectorized::Block> >&&) /var/local/ldb-toolchain/include/c++/11/bits/vector.tcc:440 #5 0x55dacf0925f4 in std::unique_ptr<doris::vectorized::Block, std::default_delete<doris::vectorized::Block> >& 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> > > >::emplace_back<std::unique_ptr<doris::vectorized::Block, std::default_delete<doris::vectorized::Block> > >(std::unique_ptr<doris::vectorized::Block, std::default_delete<doris::vectorized::Block> >&&) /var/local/ldb-toolchain/include/c++/11/bits/vector.tcc:121 #6 0x55dacf081b19 in doris::vectorized::ScannerContext::init() /root/doris/be/src/vec/exec/scan/scanner_context.cpp:94 #7 0x55dacf0a0c48 in doris::vectorized::VScanNode::_start_scanners(std::__cxx11::list<doris::vectorized::VScanner*, std::allocator<doris::vectorized::VScanner*> > const&) /root/doris/be/src/vec/exec/scan/vscan_node.cpp:280 #8 0x55dacf0a3950 in doris::vectorized::VScanNode::_prepare_scanners() /root/doris/be/src/vec/exec/scan/vscan_node.cpp:1372 #9 0x55dacf0fc8b8 in doris::vectorized::VScanNode::alloc_resource(doris::RuntimeState*) /root/doris/be/src/vec/exec/scan/vscan_node.cpp:146 #10 0x55dacf7de226 in doris::pipeline::StreamingOperator<doris::pipeline::ScanOperatorBuilder>::open(doris::RuntimeState*) /root/doris/be/src/pipeline/exec/operator.h:333 #11 0x55dacf7997fa in doris::pipeline::PipelineTask::_open() /root/doris/be/src/pipeline/pipeline_task.cpp:115 #12 0x55dacf7a7612 in doris::pipeline::PipelineTask::execute(bool*) /root/doris/be/src/pipeline/pipeline_task.cpp:144 #13 0x55dacf7cb3e6 in doris::pipeline::TaskScheduler::_do_work(unsigned long) /root/doris/be/src/pipeline/task_scheduler.cpp:249 #14 0x55dacf7cd84d in void std::__invoke_impl<void, void (doris::pipeline::TaskScheduler::*&)(unsigned long), doris::pipeline::TaskScheduler*&, unsigned long&>(std::__invoke_memfun_deref, void (doris::pipeline::TaskScheduler::*&)(unsigned long), doris::pipeline::TaskScheduler*&, unsigned long&) /var/local/ldb-toolchain/include/c++/11/bits/invoke.h:74 #15 0x55dacf7cd84d in std::__invoke_result<void (doris::pipeline::TaskScheduler::*&)(unsigned long), doris::pipeline::TaskScheduler*&, unsigned long&>::type std::__invoke<void (doris::pipeline::TaskScheduler::*&)(unsigned long), doris::pipeline::TaskScheduler*&, unsigned long&>(void (doris::pipeline::TaskScheduler::*&)(unsigned long), doris::pipeline::TaskScheduler*&, unsigned long&) /var/local/ldb-toolchain/include/c++/11/bits/invoke.h:96 #16 0x55dacf7cd84d in void std::_Bind<void (doris::pipeline::TaskScheduler::*(doris::pipeline::TaskScheduler*, unsigned long))(unsigned long)>::__call<void, , 0ul, 1ul>(std::tuple<>&&, std::_Index_tuple<0ul, 1ul>) /var/local/ldb-toolchain/include/c++/11/functional:420 #17 0x55dacf7cd84d in void std::_Bind<void (doris::pipeline::TaskScheduler::*(doris::pipeline::TaskScheduler*, unsigned long))(unsigned long)>::operator()<, void>() /var/local/ldb-toolchain/include/c++/11/functional:503 #18 0x55dacf7cd84d in void std::__invoke_impl<void, std::_Bind<void (doris::pipeline::TaskScheduler::*(doris::pipeline::TaskScheduler*, unsigned long))(unsigned long)>&>(std::__invoke_other, std::_Bind<void (doris::pipeline::TaskScheduler::*(doris::pipeline::TaskScheduler*, unsigned long))(unsigned long)>&) /var/local/ldb-toolchain/include/c++/11/bits/invoke.h:61 #19 0x55dacf7cd84d in std::enable_if<is_invocable_r_v<void, std::_Bind<void (doris::pipeline::TaskScheduler::*(doris::pipeline::TaskScheduler*, unsigned long))(unsigned long)>&>, void>::type std::__invoke_r<void, std::_Bind<void (doris::pipeline::TaskScheduler::*(doris::pipeline::TaskScheduler*, unsigned long))(unsigned long)>&>(std::_Bind<void (doris::pipeline::TaskScheduler::*(doris::pipeline::TaskScheduler*, unsigned long))(unsigned long)>&) /var/local/ldb-toolchain/include/c++/11/bits/invoke.h:111 #20 0x55dacf7cd84d in std::_Function_handler<void (), std::_Bind<void (doris::pipeline::TaskScheduler::*(doris::pipeline::TaskScheduler*, unsigned long))(unsigned long)> >::_M_invoke(std::_Any_data const&) /var/local/ldb-toolchain/include/c++/11/bits/std_function.h:291 #21 0x55dab81a6070 in std::function<void ()>::operator()() const /var/local/ldb-toolchain/include/c++/11/bits/std_function.h:560 #22 0x55dab81a6070 in doris::FunctionRunnable::run() /root/doris/be/src/util/threadpool.cpp:46 #23 0x55dab81a3f88 in doris::ThreadPool::dispatch_thread() /root/doris/be/src/util/threadpool.cpp:529 #24 0x55dab81a5c25 in void std::__invoke_impl<void, void (doris::ThreadPool::*&)(), doris::ThreadPool*&>(std::__invoke_memfun_deref, void (doris::ThreadPool::*&)(), doris::ThreadPool*&) /var/local/ldb-toolchain/include/c++/11/bits/invoke.h:74 #25 0x55dab81a5c25 in std::__invoke_result<void (doris::ThreadPool::*&)(), doris::ThreadPool*&>::type std::__invoke<void (doris::ThreadPool::*&)(), doris::ThreadPool*&>(void (doris::ThreadPool::*&)(), doris::ThreadPool*&) /var/local/ldb-toolchain/include/c++/11/bits/invoke.h:96 #26 0x55dab81a5c25 in void std::_Bind<void (doris::ThreadPool::*(doris::ThreadPool*))()>::__call<void, , 0ul>(std::tuple<>&&, std::_Index_tuple<0ul>) /var/local/ldb-toolchain/include/c++/11/functional:420 #27 0x55dab81a5c25 in void std::_Bind<void (doris::ThreadPool::*(doris::ThreadPool*))()>::operator()<, void>() /var/local/ldb-toolchain/include/c++/11/functional:503 #28 0x55dab81a5c25 in void std::__invoke_impl<void, std::_Bind<void (doris::ThreadPool::*(doris::ThreadPool*))()>&>(std::__invoke_other, std::_Bind<void (doris::ThreadPool::*(doris::ThreadPool*))()>&) /var/local/ldb-toolchain/include/c++/11/bits/invoke.h:61 #29 0x55dab81a5c25 in std::enable_if<is_invocable_r_v<void, std::_Bind<void (doris::ThreadPool::*(doris::ThreadPool*))()>&>, void>::type std::__invoke_r<void, std::_Bind<void (doris::ThreadPool::*(doris::ThreadPool*))()>&>(std::_Bind<void (doris::ThreadPool::*(doris::ThreadPool*))()>&) /var/local/ldb-toolchain/include/c++/11/bits/invoke.h:111 #30 0x55dab81a5c25 in std::_Function_handler<void (), std::_Bind<void (doris::ThreadPool::*(doris::ThreadPool*))()> >::_M_invoke(std::_Any_data const&) /var/local/ldb-toolchain/include/c++/11/bits/std_function.h:291 #31 0x55dab817ea83 in std::function<void ()>::operator()() const /var/local/ldb-toolchain/include/c++/11/bits/std_function.h:560 #32 0x55dab817ea83 in doris::Thread::supervise_thread(void*) /root/doris/be/src/util/thread.cpp:453 #33 0x7f7967ed5608 in start_thread /build/glibc-SzIz7B/glibc-2.31/nptl/pthread_create.c:477 Thread T278 (TaskSchedulerTh) created by T0 here: #0 0x55dab5490061 in __interceptor_pthread_create (/mnt/ssd01/pipline/OpenSourceDoris/clusterEnv/P0/Cluster2/be/lib/doris_be+0xb41c061) #1 0x55dab817aac9 in doris::Thread::start_thread(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::function<void ()> const&, unsigned long, scoped_refptr<doris::Thread>*) /root/doris/be/src/util/thread.cpp:407 #2 0x55dab8191fce in doris::Status doris::Thread::create<void (doris::ThreadPool::*)(), doris::ThreadPool*>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, void (doris::ThreadPool::* const&)(), doris::ThreadPool* const&, scoped_refptr<doris::Thread>*) /root/doris/be/src/util/thread.h:57 #3 0x55dab8191fce in doris::ThreadPool::create_thread() /root/doris/be/src/util/threadpool.cpp:598 #4 0x55dab819ba1d in doris::ThreadPool::init() /root/doris/be/src/util/threadpool.cpp:257 #5 0x55dacf7c283c in doris::Status doris::ThreadPoolBuilder::build<doris::ThreadPool>(std::unique_ptr<doris::ThreadPool, std::default_delete<doris::ThreadPool> >*) const /root/doris/be/src/util/threadpool.h:114 #6 0x55dacf7c283c in doris::pipeline::TaskScheduler::start() /root/doris/be/src/pipeline/task_scheduler.cpp:200 #7 0x55dab786e5f5 in doris::ExecEnv::init_pipeline_task_scheduler() /root/doris/be/src/runtime/exec_env_init.cpp:173 #8 0x55dab788425c in doris::ExecEnv::_init(std::vector<doris::StorePath, std::allocator<doris::StorePath> > const&) /root/doris/be/src/runtime/exec_env_init.cpp:123 #9 0x55dab7886560 in doris::ExecEnv::init(doris::ExecEnv*, std::vector<doris::StorePath, std::allocator<doris::StorePath> > const&) /root/doris/be/src/runtime/exec_env_init.cpp:73 #10 0x55dab553d284 in main /root/doris/be/src/service/doris_main.cpp:436 #11 0x7f7967bb0082 in __libc_start_main ../csu/libc-start.c:308 Thread T267 (TaskSchedulerTh) created by T0 here: #0 0x55dab5490061 in __interceptor_pthread_create (/mnt/ssd01/pipline/OpenSourceDoris/clusterEnv/P0/Cluster2/be/lib/doris_be+0xb41c061) #1 0x55dab817aac9 in doris::Thread::start_thread(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::function<void ()> const&, unsigned long, scoped_refptr<doris::Thread>*) /root/doris/be/src/util/thread.cpp:407 #2 0x55dab8191fce in doris::Status doris::Thread::create<void (doris::ThreadPool::*)(), doris::ThreadPool*>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, void (doris::ThreadPool::* const&)(), doris::ThreadPool* const&, scoped_refptr<doris::Thread>*) /root/doris/be/src/util/thread.h:57 #3 0x55dab8191fce in doris::ThreadPool::create_thread() /root/doris/be/src/util/threadpool.cpp:598 #4 0x55dab819ba1d in doris::ThreadPool::init() /root/doris/be/src/util/threadpool.cpp:257 #5 0x55dacf7c283c in doris::Status doris::ThreadPoolBuilder::build<doris::ThreadPool>(std::unique_ptr<doris::ThreadPool, std::default_delete<doris::ThreadPool> >*) const /root/doris/be/src/util/threadpool.h:114 #6 0x55dacf7c283c in doris::pipeline::TaskScheduler::start() /root/doris/be/src/pipeline/task_scheduler.cpp:200 #7 0x55dab786e5f5 in doris::ExecEnv::init_pipeline_task_scheduler() /root/doris/be/src/runtime/exec_env_init.cpp:173 #8 0x55dab788425c in doris::ExecEnv::_init(std::vector<doris::StorePath, std::allocator<doris::StorePath> > const&) /root/doris/be/src/runtime/exec_env_init.cpp:123 #9 0x55dab7886560 in doris::ExecEnv::init(doris::ExecEnv*, std::vector<doris::StorePath, std::allocator<doris::StorePath> > const&) /root/doris/be/src/runtime/exec_env_init.cpp:73 #10 0x55dab553d284 in main /root/doris/be/src/service/doris_main.cpp:436 #11 0x7f7967bb0082 in __libc_start_main ../csu/libc-start.c:308 Thread T281 (TaskSchedulerTh) created by T0 here: #0 0x55dab5490061 in __interceptor_pthread_create (/mnt/ssd01/pipline/OpenSourceDoris/clusterEnv/P0/Cluster2/be/lib/doris_be+0xb41c061) #1 0x55dab817aac9 in doris::Thread::start_thread(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::function<void ()> const&, unsigned long, scoped_refptr<doris::Thread>*) /root/doris/be/src/util/thread.cpp:407 #2 0x55dab8191fce in doris::Status doris::Thread::create<void (doris::ThreadPool::*)(), doris::ThreadPool*>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, void (doris::ThreadPool::* const&)(), doris::ThreadPool* const&, scoped_refptr<doris::Thread>*) /root/doris/be/src/util/thread.h:57 #3 0x55dab8191fce in doris::ThreadPool::create_thread() /root/doris/be/src/util/threadpool.cpp:598 #4 0x55dab819ba1d in doris::ThreadPool::init() /root/doris/be/src/util/threadpool.cpp:257 #5 0x55dacf7c283c in doris::Status doris::ThreadPoolBuilder::build<doris::ThreadPool>(std::unique_ptr<doris::ThreadPool, std::default_delete<doris::ThreadPool> >*) const /root/doris/be/src/util/threadpool.h:114 #6 0x55dacf7c283c in doris::pipeline::TaskScheduler::start() /root/doris/be/src/pipeline/task_scheduler.cpp:200 #7 0x55dab786e5f5 in doris::ExecEnv::init_pipeline_task_scheduler() /root/doris/be/src/runtime/exec_env_init.cpp:173 #8 0x55dab788425c in doris::ExecEnv::_init(std::vector<doris::StorePath, std::allocator<doris::StorePath> > const&) /root/doris/be/src/runtime/exec_env_init.cpp:123 #9 0x55dab7886560 in doris::ExecEnv::init(doris::ExecEnv*, std::vector<doris::StorePath, std::allocator<doris::StorePath> > const&) /root/doris/be/src/runtime/exec_env_init.cpp:73 #10 0x55dab553d284 in main /root/doris/be/src/service/doris_main.cpp:436 #11 0x7f7967bb0082 in __libc_start_main ../csu/libc-start.c:308 SUMMARY: AddressSanitizer: heap-use-after-free /var/local/ldb-toolchain/include/c++/11/bits/unique_ptr.h:360 in std::unique_ptr<doris::vectorized::Block, std::default_delete<doris::vectorized::Block> >::~unique_ptr() Shadow bytes around the buggy address: 0x0c0680697c60: fa fa fd fd fd fa fa fa fd fd fd fa fa fa fd fd 0x0c0680697c70: fd fd fa fa 00 00 00 00 fa fa fd fd fd fa fa fa 0x0c0680697c80: fa fa fa fa fa fa fa fa fa fa fa fa fd fd fd fa 0x0c0680697c90: fa fa fd fd fd fa fa fa fa fa fa fa fa fa 00 00 0x0c0680697ca0: 00 fa fa fa fa fa fa fa fa fa fd fd fd fa fa fa =>0x0c0680697cb0: 00 00 00 fa fa fa fd fd fd fd fa fa fd[fd]fd fd 0x0c0680697cc0: fa fa 00 00 00 fa fa fa 00 00 00 00 fa fa 00 00 0x0c0680697cd0: 00 fa fa fa fd fd fd fa fa fa fd fd fd fd fa fa 0x0c0680697ce0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa 0x0c0680697cf0: fa fa fa fa fa fa fa fa 00 00 00 00 fa fa 00 00 0x0c0680697d00: 00 fa fa fa fa fa fa fa fa fa 00 00 00 fa fa fa 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 Shadow gap: cc ==1715262==ABORTING start time: Sun 16 Apr 2023 12:00:42 AM CST WARNING: Logging before InitGoogleLogging() is written to STDERR I0416 00:00:42.706631 1730339 doris_main.cpp:322] enable_fuzzy_mode is true, set fuzzy configs SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found binding in [jar:file:/mnt/ssd01/pipline/OpenSourceDoris/clusterEnv/P0/Cluster2/be/lib/hadoop_hdfs/common/lib/slf4j-reload4j-1.7.36.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: Found binding in [jar:file:/mnt/ssd01/pipline/OpenSourceDoris/clusterEnv/P0/Cluster2/be/lib/java-udf-jar-with-dependencies.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation. SLF4J: Actual binding is of type [org.slf4j.impl.Reload4jLoggerFactory] ================================================================= ==1730339==ERROR: AddressSanitizer: stack-buffer-overflow on address 0x7f690a340c48 at pc 0x55fb75ff8b17 bp 0x7f690a340c10 sp 0x7f690a3403b8 WRITE of size 24 at 0x7f690a340c48 thread T792 (TaskWorkerPool.) #0 0x55fb75ff8b16 in __interceptor_sigaltstack.part.0 (/mnt/ssd01/pipline/OpenSourceDoris/clusterEnv/P0/Cluster2/be/lib/doris_be+0xb417b16) #1 0x55fb7605e8bf in __asan::PlatformUnpoisonStacks() (/mnt/ssd01/pipline/OpenSourceDoris/clusterEnv/P0/Cluster2/be/lib/doris_be+0xb47d8bf) #2 0x55fb76064224 in __asan_handle_no_return (/mnt/ssd01/pipline/OpenSourceDoris/clusterEnv/P0/Cluster2/be/lib/doris_be+0xb483224) #3 0x55fb793f6d02 in apache::thrift::protocol::TProtocol::decrementOutputRecursionDepth() /var/local/thirdparty/installed/include/thrift/protocol/TProtocol.h:541 #4 0x55fb793f6d02 in apache::thrift::protocol::TOutputRecursionTracker::~TOutputRecursionTracker() /var/local/thirdparty/installed/include/thrift/protocol/TProtocol.h:636 #5 0x55fb793f6d02 in doris::TTabletInfo::write(apache::thrift::protocol::TProtocol*) const /root/doris/gensrc/build/gen_cpp/MasterService_types.cpp:465 #6 0x55fb793efdc4 in doris::TTablet::write(apache::thrift::protocol::TProtocol*) const /root/doris/gensrc/build/gen_cpp/MasterService_types.cpp:1193 #7 0x55fb793f7e64 in doris::TReportRequest::write(apache::thrift::protocol::TProtocol*) const /root/doris/gensrc/build/gen_cpp/MasterService_types.cpp:1908 #8 0x55fb791538a7 in doris::FrontendService_report_pargs::write(apache::thrift::protocol::TProtocol*) const /root/doris/gensrc/build/gen_cpp/FrontendService.cpp:1391 #9 0x55fb79185830 in doris::FrontendServiceClient::send_report(doris::TReportRequest const&) /root/doris/gensrc/build/gen_cpp/FrontendService.cpp:5998 #10 0x55fb791fd2ec in doris::FrontendServiceClient::report(doris::TMasterResult&, doris::TReportRequest const&) /root/doris/gensrc/build/gen_cpp/FrontendService.cpp:5987 #11 0x55fb7785473c in doris::MasterServerClient::report(doris::TReportRequest const&, doris::TMasterResult*) /root/doris/be/src/agent/utils.cpp:108 #12 0x55fb777ee004 in doris::TaskWorkerPool::_handle_report(doris::TReportRequest const&, doris::TaskWorkerPool::ReportType) /root/doris/be/src/agent/task_worker_pool.cpp:1667 #13 0x55fb777f4d85 in doris::TaskWorkerPool::_report_tablet_worker_thread_callback() /root/doris/be/src/agent/task_worker_pool.cpp:1378 #14 0x55fb778345d1 in void std::__invoke_impl<void, void (doris::TaskWorkerPool::*&)(), doris::TaskWorkerPool*&>(std::__invoke_memfun_deref, void (doris::TaskWorkerPool::*&)(), doris::TaskWorkerPool*&) /var/local/ldb-toolchain/include/c++/11/bits/invoke.h:74 #15 0x55fb778345d1 in std::enable_if<is_invocable_r_v<void, void (doris::TaskWorkerPool::*&)(), doris::TaskWorkerPool*&>, void>::type std::__invoke_r<void, void (doris::TaskWorkerPool::*&)(), doris::TaskWorkerPool*&>(void (doris::TaskWorkerPool::*&)(), doris::TaskWorkerPool*&) /var/local/ldb-toolchain/include/c++/11/bits/invoke.h:111 #16 0x55fb778345d1 in void std::_Bind_result<void, void (doris::TaskWorkerPool::*(doris::TaskWorkerPool*))()>::__call<void, , 0ul>(std::tuple<>&&, std::_Index_tuple<0ul>) /var/local/ldb-toolchain/include/c++/11/functional:570 #17 0x55fb778345d1 in void std::_Bind_result<void, void (doris::TaskWorkerPool::*(doris::TaskWorkerPool*))()>::operator()<>() /var/local/ldb-toolchain/include/c++/11/functional:629 #18 0x55fb778345d1 in void std::__invoke_impl<void, std::_Bind_result<void, void (doris::TaskWorkerPool::*(doris::TaskWorkerPool*))()>&>(std::__invoke_other, std::_Bind_result<void, void (doris::TaskWorkerPool::*(doris::TaskWorkerPool*))()>&) /var/local/ldb-toolchain/include/c++/11/bits/invoke.h:61 #19 0x55fb778345d1 in std::enable_if<is_invocable_r_v<void, std::_Bind_result<void, void (doris::TaskWorkerPool::*(doris::TaskWorkerPool*))()>&>, void>::type std::__invoke_r<void, std::_Bind_result<void, void (doris::TaskWorkerPool::*(doris::TaskWorkerPool*))()>&>(std::_Bind_result<void, void (doris::TaskWorkerPool::*(doris::TaskWorkerPool*))()>&) /var/local/ldb-toolchain/include/c++/11/bits/invoke.h:111 #20 0x55fb778345d1 in std::_Function_handler<void (), std::_Bind_result<void, void (doris::TaskWorkerPool::*(doris::TaskWorkerPool*))()> >::_M_invoke(std::_Any_data const&) /var/local/ldb-toolchain/include/c++/11/bits/std_function.h:291 #21 0x55fb78d13070 in std::function<void ()>::operator()() const /var/local/ldb-toolchain/include/c++/11/bits/std_function.h:560 #22 0x55fb78d13070 in doris::FunctionRunnable::run() /root/doris/be/src/util/threadpool.cpp:46 #23 0x55fb78d10f88 in doris::ThreadPool::dispatch_thread() /root/doris/be/src/util/threadpool.cpp:529 #24 0x55fb78d12c25 in void std::__invoke_impl<void, void (doris::ThreadPool::*&)(), doris::ThreadPool*&>(std::__invoke_memfun_deref, void (doris::ThreadPool::*&)(), doris::ThreadPool*&) /var/local/ldb-toolchain/include/c++/11/bits/invoke.h:74 #25 0x55fb78d12c25 in std::__invoke_result<void (doris::ThreadPool::*&)(), doris::ThreadPool*&>::type std::__invoke<void (doris::ThreadPool::*&)(), doris::ThreadPool*&>(void (doris::ThreadPool::*&)(), doris::ThreadPool*&) /var/local/ldb-toolchain/include/c++/11/bits/invoke.h:96 #26 0x55fb78d12c25 in void std::_Bind<void (doris::ThreadPool::*(doris::ThreadPool*))()>::__call<void, , 0ul>(std::tuple<>&&, std::_Index_tuple<0ul>) /var/local/ldb-toolchain/include/c++/11/functional:420 #27 0x55fb78d12c25 in void std::_Bind<void (doris::ThreadPool::*(doris::ThreadPool*))()>::operator()<, void>() /var/local/ldb-toolchain/include/c++/11/functional:503 #28 0x55fb78d12c25 in void std::__invoke_impl<void, std::_Bind<void (doris::ThreadPool::*(doris::ThreadPool*))()>&>(std::__invoke_other, std::_Bind<void (doris::ThreadPool::*(doris::ThreadPool*))()>&) /var/local/ldb-toolchain/include/c++/11/bits/invoke.h:61 #29 0x55fb78d12c25 in std::enable_if<is_invocable_r_v<void, std::_Bind<void (doris::ThreadPool::*(doris::ThreadPool*))()>&>, void>::type std::__invoke_r<void, std::_Bind<void (doris::ThreadPool::*(doris::ThreadPool*))()>&>(std::_Bind<void (doris::ThreadPool::*(doris::ThreadPool*))()>&) /var/local/ldb-toolchain/include/c++/11/bits/invoke.h:111 #30 0x55fb78d12c25 in std::_Function_handler<void (), std::_Bind<void (doris::ThreadPool::*(doris::ThreadPool*))()> >::_M_invoke(std::_Any_data const&) /var/local/ldb-toolchain/include/c++/11/bits/std_function.h:291 #31 0x55fb78ceba83 in std::function<void ()>::operator()() const /var/local/ldb-toolchain/include/c++/11/bits/std_function.h:560 #32 0x55fb78ceba83 in doris::Thread::supervise_thread(void*) /root/doris/be/src/util/thread.cpp:453 #33 0x7f6b1006d608 in start_thread /build/glibc-SzIz7B/glibc-2.31/nptl/pthread_create.c:477 #34 0x7f6b0fe43132 in __clone (/lib/x86_64-linux-gnu/libc.so.6+0x11f132) Address 0x7f690a340c48 is located in stack of thread T792 (TaskWorkerPool.) at offset 40 in frame #0 0x55fb778569bf in apache::thrift::protocol::TVirtualProtocol<apache::thrift::protocol::TBinaryProtocolT<apache::thrift::transport::TTransport, apache::thrift::protocol::TNetworkBigEndian>, apache::thrift::protocol::TProtocolDefaults>::writeI64_virt(long) /var/local/thirdparty/installed/include/thrift/protocol/TVirtualProtocol.h:380 This frame has 1 object(s): [32, 40) 'net' <== Memory access at offset 40 overflows this variable HINT: this may be a false positive if your program uses some custom stack unwind mechanism, swapcontext or vfork (longjmp and C++ exceptions *are* supported) Thread T792 (TaskWorkerPool.) created by T0 here: #0 0x55fb75ffd061 in __interceptor_pthread_create (/mnt/ssd01/pipline/OpenSourceDoris/clusterEnv/P0/Cluster2/be/lib/doris_be+0xb41c061) #1 0x55fb78ce7ac9 in doris::Thread::start_thread(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::function<void ()> const&, unsigned long, scoped_refptr<doris::Thread>*) /root/doris/be/src/util/thread.cpp:407 #2 0x55fb78cfefce in doris::Status doris::Thread::create<void (doris::ThreadPool::*)(), doris::ThreadPool*>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, void (doris::ThreadPool::* const&)(), doris::ThreadPool* const&, scoped_refptr<doris::Thread>*) /root/doris/be/src/util/thread.h:57 #3 0x55fb78cfefce in doris::ThreadPool::create_thread() /root/doris/be/src/util/threadpool.cpp:598 #4 0x55fb78d08a1d in doris::ThreadPool::init() /root/doris/be/src/util/threadpool.cpp:257 #5 0x55fb777df360 in doris::Status doris::ThreadPoolBuilder::build<doris::ThreadPool>(std::unique_ptr<doris::ThreadPool, std::default_delete<doris::ThreadPool> >*) const /root/doris/be/src/util/threadpool.h:114 #6 0x55fb777df360 in doris::TaskWorkerPool::start() /root/doris/be/src/agent/task_worker_pool.cpp:222 #7 0x55fb7890790a in doris::AgentServer::AgentServer(doris::ExecEnv*, doris::TMasterInfo const&) /root/doris/be/src/agent/agent_server.cpp:96 #8 0x55fb788e1f2b in doris::BackendService::BackendService(doris::ExecEnv*) /root/doris/be/src/service/backend_service.cpp:68 #9 0x55fb788ebfeb in doris::BackendService::create_service(doris::ExecEnv*, int, doris::ThriftServer**) /root/doris/be/src/service/backend_service.cpp:71 #10 0x55fb760aa793 in main /root/doris/be/src/service/doris_main.cpp:462 #11 0x7f6b0fd48082 in __libc_start_main ../csu/libc-start.c:308 SUMMARY: AddressSanitizer: stack-buffer-overflow (/mnt/ssd01/pipline/OpenSourceDoris/clusterEnv/P0/Cluster2/be/lib/doris_be+0xb417b16) in __interceptor_sigaltstack.part.0 Shadow bytes around the buggy address: 0x0feda1460130: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x0feda1460140: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x0feda1460150: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x0feda1460160: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x0feda1460170: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 =>0x0feda1460180: 00 00 00 00 f1 f1 f1 f1 00[f3]f3 f3 00 00 00 00 0x0feda1460190: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x0feda14601a0: f1 f1 f1 f1 f1 f1 01 f2 00 f2 f2 f2 00 f2 f2 f2 0x0feda14601b0: 00 f2 f2 f2 00 f2 f2 f2 00 f3 f3 f3 00 00 00 00 0x0feda14601c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x0feda14601d0: f1 f1 f1 f1 f1 f1 01 f2 00 f2 f2 f2 00 f2 f2 f2 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 Shadow gap: cc ==1730339==ABORTING
Run normally.
Maybe run p0 several times.
No response
resolved by PR#18701, data race at _free_blocks.
_free_blocks
Search before asking
Version
current master
What's Wrong?
When running p0 in CI, found BE crash, and it happended 3 times in 4 runnings total, which may thought to be a problem.
According to be.out, a dangling pointer may happen in
ScannerContext::clear_and_join
, related toScannerContext::return_free_block
.be.out
What You Expected?
Run normally.
How to Reproduce?
Maybe run p0 several times.
Anything Else?
No response
Are you willing to submit PR?
Code of Conduct