You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@doris.apache.org by GitBox <gi...@apache.org> on 2022/05/31 13:08:24 UTC

[GitHub] [incubator-doris] deardeng opened a new issue, #9891: [Bug] double close in FunctionLikeBase

deardeng opened a new issue, #9891:
URL: https://github.com/apache/incubator-doris/issues/9891

   ### Search before asking
   
   - [X] I had searched in the [issues](https://github.com/apache/incubator-doris/issues?q=is%3Aissue) and found no similar issues.
   
   
   ### Version
   
   dev 1.0.1
   
   ### What's Wrong?
   
   core 
   asan log
   
   I0000 00:00:00.000000 1380518 vlog_is_on.cc:197] RAW: Set VLOG level for "*" to 10
   =================================================================
   ==1380518==ERROR: AddressSanitizer: heap-use-after-free on address 0x60b001a01670 at pc 0x55b142072763 bp 0x7fc35bd09970 sp 0x7fc35bd09960
   READ of size 8 at 0x60b001a01670 thread T2277 (FragmentMgrThre)
       #0 0x55b142072762 in std::_Function_base::~_Function_base() /usr/include/c++/11/bits/std_function.h:244
       #1 0x55b147a01e55 in std::function<doris::Status (doris::vectorized::LikeSearchState*, doris::StringValue const&, doris::StringValue const&, unsigned char*)>::~function() /usr/include/c++/11/bits/std_function.h:328
       #2 0x55b147a01e79 in doris::vectorized::LikeState::~LikeState() /mnt/hdd01/repo_center/selectdb_dev-1.0.1/selectdb/be/src/vec/functions/like.h:71
       #3 0x55b1479faa12 in doris::vectorized::FunctionLikeBase::close(doris_udf::FunctionContext*, doris_udf::FunctionContext::FunctionStateScope) /mnt/hdd01/repo_center/selectdb_dev-1.0.1/selectdb/be/src/vec/functions/like.cpp:120
       #4 0x55b1457d7c28 in doris::vectorized::DefaultFunction::close(doris_udf::FunctionContext*, doris_udf::FunctionContext::FunctionStateScope) (/mnt/hdd01/SELECTDB_1.0.1_ASAN/be/lib/palo_be+0x85ccc28)
       #5 0x55b145782d00 in doris::vectorized::VExpr::close_function_context(doris::vectorized::VExprContext*, doris_udf::FunctionContext::FunctionStateScope, std::shared_ptr<doris::vectorized::IFunctionBase> const&) /mnt/hdd01/repo_center/selectdb_dev-1.0.1/selectdb/be/src/vec/exprs/vexpr.cpp:341
       #6 0x55b147c7989a in doris::vectorized::VectorizedFnCall::close(doris::RuntimeState*, doris::vectorized::VExprContext*, doris_udf::FunctionContext::FunctionStateScope) /mnt/hdd01/repo_center/selectdb_dev-1.0.1/selectdb/be/src/vec/exprs/vectorized_fn_call.cpp:72
       #7 0x55b14577cfaa in doris::vectorized::VExpr::close(doris::RuntimeState*, doris::vectorized::VExprContext*, doris_udf::FunctionContext::FunctionStateScope) /mnt/hdd01/repo_center/selectdb_dev-1.0.1/selectdb/be/src/vec/exprs/vexpr.cpp:82
       #8 0x55b147c798b1 in doris::vectorized::VectorizedFnCall::close(doris::RuntimeState*, doris::vectorized::VExprContext*, doris_udf::FunctionContext::FunctionStateScope) /mnt/hdd01/repo_center/selectdb_dev-1.0.1/selectdb/be/src/vec/exprs/vectorized_fn_call.cpp:73
       #9 0x55b14577cfaa in doris::vectorized::VExpr::close(doris::RuntimeState*, doris::vectorized::VExprContext*, doris_udf::FunctionContext::FunctionStateScope) /mnt/hdd01/repo_center/selectdb_dev-1.0.1/selectdb/be/src/vec/exprs/vexpr.cpp:82
       #10 0x55b147c798b1 in doris::vectorized::VectorizedFnCall::close(doris::RuntimeState*, doris::vectorized::VExprContext*, doris_udf::FunctionContext::FunctionStateScope) /mnt/hdd01/repo_center/selectdb_dev-1.0.1/selectdb/be/src/vec/exprs/vectorized_fn_call.cpp:73
       #11 0x55b1441f09ea in doris::vectorized::VExprContext::close(doris::RuntimeState*) /mnt/hdd01/repo_center/selectdb_dev-1.0.1/selectdb/be/src/vec/exprs/vexpr_context.cpp:63
       #12 0x55b14427d5ec in doris::ExecNode::close(doris::RuntimeState*) /mnt/hdd01/repo_center/selectdb_dev-1.0.1/selectdb/be/src/exec/exec_node.cpp:272
       #13 0x55b144c501eb in doris::vectorized::VOlapScanNode::close(doris::RuntimeState*) /mnt/hdd01/repo_center/selectdb_dev-1.0.1/selectdb/be/src/vec/exec/volap_scan_node.cpp:436
       #14 0x55b14427d4c2 in doris::ExecNode::close(doris::RuntimeState*) /mnt/hdd01/repo_center/selectdb_dev-1.0.1/selectdb/be/src/exec/exec_node.cpp:266
       #15 0x55b144c6b818 in doris::vectorized::VSortNode::close(doris::RuntimeState*) /mnt/hdd01/repo_center/selectdb_dev-1.0.1/selectdb/be/src/vec/exec/vsort_node.cpp:107
       #16 0x55b1431251cd in doris::PlanFragmentExecutor::close() /mnt/hdd01/repo_center/selectdb_dev-1.0.1/selectdb/be/src/runtime/plan_fragment_executor.cpp:667
       #17 0x55b142f0dd59 in doris::FragmentExecState::execute() /mnt/hdd01/repo_center/selectdb_dev-1.0.1/selectdb/be/src/runtime/fragment_mgr.cpp:233
       #18 0x55b142f157d5 in doris::FragmentMgr::_exec_actual(std::shared_ptr<doris::FragmentExecState>, std::function<void (doris::PlanFragmentExecutor*)>) /mnt/hdd01/repo_center/selectdb_dev-1.0.1/selectdb/be/src/runtime/fragment_mgr.cpp:464
       #19 0x55b142f5dcb5 in void std::__invoke_impl<void, void (doris::FragmentMgr::*&)(std::shared_ptr<doris::FragmentExecState>, std::function<void (doris::PlanFragmentExecutor*)>), doris::FragmentMgr*&, std::shared_ptr<doris::FragmentExecState>&, std::function<void (doris::PlanFragmentExecutor*)>&>(std::__invoke_memfun_deref, void (doris::FragmentMgr::*&)(std::shared_ptr<doris::FragmentExecState>, std::function<void (doris::PlanFragmentExecutor*)>), doris::FragmentMgr*&, std::shared_ptr<doris::FragmentExecState>&, std::function<void (doris::PlanFragmentExecutor*)>&) (/mnt/hdd01/SELECTDB_1.0.1_ASAN/be/lib/palo_be+0x5d52cb5)
       #20 0x55b142f5c63a in std::enable_if<is_invocable_r_v<void, void (doris::FragmentMgr::*&)(std::shared_ptr<doris::FragmentExecState>, std::function<void (doris::PlanFragmentExecutor*)>), doris::FragmentMgr*&, std::shared_ptr<doris::FragmentExecState>&, std::function<void (doris::PlanFragmentExecutor*)>&>, void>::type std::__invoke_r<void, void (doris::FragmentMgr::*&)(std::shared_ptr<doris::FragmentExecState>, std::function<void (doris::PlanFragmentExecutor*)>), doris::FragmentMgr*&, std::shared_ptr<doris::FragmentExecState>&, std::function<void (doris::PlanFragmentExecutor*)>&>(void (doris::FragmentMgr::*&)(std::shared_ptr<doris::FragmentExecState>, std::function<void (doris::PlanFragmentExecutor*)>), doris::FragmentMgr*&, std::shared_ptr<doris::FragmentExecState>&, std::function<void (doris::PlanFragmentExecutor*)>&) (/mnt/hdd01/SELECTDB_1.0.1_ASAN/be/lib/palo_be+0x5d5163a)
       #21 0x55b142f5a78d in void std::_Bind_result<void, void (doris::FragmentMgr::*(doris::FragmentMgr*, std::shared_ptr<doris::FragmentExecState>, std::function<void (doris::PlanFragmentExecutor*)>))(std::shared_ptr<doris::FragmentExecState>, std::function<void (doris::PlanFragmentExecutor*)>)>::__call<void, , 0ul, 1ul, 2ul>(std::tuple<>&&, std::_Index_tuple<0ul, 1ul, 2ul>) (/mnt/hdd01/SELECTDB_1.0.1_ASAN/be/lib/palo_be+0x5d4f78d)
       #22 0x55b142f56dfe in void std::_Bind_result<void, void (doris::FragmentMgr::*(doris::FragmentMgr*, std::shared_ptr<doris::FragmentExecState>, std::function<void (doris::PlanFragmentExecutor*)>))(std::shared_ptr<doris::FragmentExecState>, std::function<void (doris::PlanFragmentExecutor*)>)>::operator()<>() /usr/include/c++/11/functional:629
       #23 0x55b142f51b51 in void std::__invoke_impl<void, std::_Bind_result<void, void (doris::FragmentMgr::*(doris::FragmentMgr*, std::shared_ptr<doris::FragmentExecState>, std::function<void (doris::PlanFragmentExecutor*)>))(std::shared_ptr<doris::FragmentExecState>, std::function<void (doris::PlanFragmentExecutor*)>)>&>(std::__invoke_other, std::_Bind_result<void, void (doris::FragmentMgr::*(doris::FragmentMgr*, std::shared_ptr<doris::FragmentExecState>, std::function<void (doris::PlanFragmentExecutor*)>))(std::shared_ptr<doris::FragmentExecState>, std::function<void (doris::PlanFragmentExecutor*)>)>&) (/mnt/hdd01/SELECTDB_1.0.1_ASAN/be/lib/palo_be+0x5d46b51)
       #24 0x55b142f49913 in std::enable_if<is_invocable_r_v<void, std::_Bind_result<void, void (doris::FragmentMgr::*(doris::FragmentMgr*, std::shared_ptr<doris::FragmentExecState>, std::function<void (doris::PlanFragmentExecutor*)>))(std::shared_ptr<doris::FragmentExecState>, std::function<void (doris::PlanFragmentExecutor*)>)>&>, void>::type std::__invoke_r<void, std::_Bind_result<void, void (doris::FragmentMgr::*(doris::FragmentMgr*, std::shared_ptr<doris::FragmentExecState>, std::function<void (doris::PlanFragmentExecutor*)>))(std::shared_ptr<doris::FragmentExecState>, std::function<void (doris::PlanFragmentExecutor*)>)>&>(std::_Bind_result<void, void (doris::FragmentMgr::*(doris::FragmentMgr*, std::shared_ptr<doris::FragmentExecState>, std::function<void (doris::PlanFragmentExecutor*)>))(std::shared_ptr<doris::FragmentExecState>, std::function<void (doris::PlanFragmentExecutor*)>)>&) (/mnt/hdd01/SELECTDB_1.0.1_ASAN/be/lib/palo_be+0x5d3e913)
       #25 0x55b142f41394 in std::_Function_handler<void (), std::_Bind_result<void, void (doris::FragmentMgr::*(doris::FragmentMgr*, std::shared_ptr<doris::FragmentExecState>, std::function<void (doris::PlanFragmentExecutor*)>))(std::shared_ptr<doris::FragmentExecState>, std::function<void (doris::PlanFragmentExecutor*)>)> >::_M_invoke(std::_Any_data const&) /usr/include/c++/11/bits/std_function.h:291
       #26 0x55b142e8c137 in std::function<void ()>::operator()() const /usr/include/c++/11/bits/std_function.h:560
       #27 0x55b1434e035d in doris::FunctionRunnable::run() /mnt/hdd01/repo_center/selectdb_dev-1.0.1/selectdb/be/src/util/threadpool.cpp:42
       #28 0x55b1434db2d7 in doris::ThreadPool::dispatch_thread() /mnt/hdd01/repo_center/selectdb_dev-1.0.1/selectdb/be/src/util/threadpool.cpp:570
       #29 0x55b1434fc7cf in void std::__invoke_impl<void, void (doris::ThreadPool::*&)(), doris::ThreadPool*&>(std::__invoke_memfun_deref, void (doris::ThreadPool::*&)(), doris::ThreadPool*&) /usr/include/c++/11/bits/invoke.h:74
       #30 0x55b1434fc016 in std::__invoke_result<void (doris::ThreadPool::*&)(), doris::ThreadPool*&>::type std::__invoke<void (doris::ThreadPool::*&)(), doris::ThreadPool*&>(void (doris::ThreadPool::*&)(), doris::ThreadPool*&) /usr/include/c++/11/bits/invoke.h:96
       #31 0x55b1434fb339 in void std::_Bind<void (doris::ThreadPool::*(doris::ThreadPool*))()>::__call<void, , 0ul>(std::tuple<>&&, std::_Index_tuple<0ul>) /usr/include/c++/11/functional:420
       #32 0x55b1434f9d58 in void std::_Bind<void (doris::ThreadPool::*(doris::ThreadPool*))()>::operator()<, void>() /usr/include/c++/11/functional:503
       #33 0x55b1434f6797 in void std::__invoke_impl<void, std::_Bind<void (doris::ThreadPool::*(doris::ThreadPool*))()>&>(std::__invoke_other, std::_Bind<void (doris::ThreadPool::*(doris::ThreadPool*))()>&) /usr/include/c++/11/bits/invoke.h:61
       #34 0x55b1434f3f7f 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*))()>&) /usr/include/c++/11/bits/invoke.h:111
       #35 0x55b1434ef188 in std::_Function_handler<void (), std::_Bind<void (doris::ThreadPool::*(doris::ThreadPool*))()> >::_M_invoke(std::_Any_data const&) /usr/include/c++/11/bits/std_function.h:291
       #36 0x55b142e8c137 in std::function<void ()>::operator()() const /usr/include/c++/11/bits/std_function.h:560
       #37 0x55b1434bf0b9 in doris::Thread::supervise_thread(void*) /mnt/hdd01/repo_center/selectdb_dev-1.0.1/selectdb/be/src/util/thread.cpp:406
       #38 0x7fc520c8a44f in start_thread nptl/pthread_create.c:473
       #39 0x7fc520dbad52 in clone (/lib/x86_64-linux-gnu/libc.so.6+0x117d52)
   
   0x60b001a01670 is located 96 bytes inside of 112-byte region [0x60b001a01610,0x60b001a01680)
   freed by thread T2277 (FragmentMgrThre) here:
       #0 0x55b141fe30ff in operator delete(void*, unsigned long) (/mnt/hdd01/SELECTDB_1.0.1_ASAN/be/lib/palo_be+0x4dd80ff)
       #1 0x55b1479faa1f in doris::vectorized::FunctionLikeBase::close(doris_udf::FunctionContext*, doris_udf::FunctionContext::FunctionStateScope) /mnt/hdd01/repo_center/selectdb_dev-1.0.1/selectdb/be/src/vec/functions/like.cpp:120
       #2 0x55b1457d7c28 in doris::vectorized::DefaultFunction::close(doris_udf::FunctionContext*, doris_udf::FunctionContext::FunctionStateScope) (/mnt/hdd01/SELECTDB_1.0.1_ASAN/be/lib/palo_be+0x85ccc28)
       #3 0x55b145782d00 in doris::vectorized::VExpr::close_function_context(doris::vectorized::VExprContext*, doris_udf::FunctionContext::FunctionStateScope, std::shared_ptr<doris::vectorized::IFunctionBase> const&) /mnt/hdd01/repo_center/selectdb_dev-1.0.1/selectdb/be/src/vec/exprs/vexpr.cpp:341
       #4 0x55b147c7989a in doris::vectorized::VectorizedFnCall::close(doris::RuntimeState*, doris::vectorized::VExprContext*, doris_udf::FunctionContext::FunctionStateScope) /mnt/hdd01/repo_center/selectdb_dev-1.0.1/selectdb/be/src/vec/exprs/vectorized_fn_call.cpp:72
       #5 0x55b14577cfaa in doris::vectorized::VExpr::close(doris::RuntimeState*, doris::vectorized::VExprContext*, doris_udf::FunctionContext::FunctionStateScope) /mnt/hdd01/repo_center/selectdb_dev-1.0.1/selectdb/be/src/vec/exprs/vexpr.cpp:82
       #6 0x55b147c798b1 in doris::vectorized::VectorizedFnCall::close(doris::RuntimeState*, doris::vectorized::VExprContext*, doris_udf::FunctionContext::FunctionStateScope) /mnt/hdd01/repo_center/selectdb_dev-1.0.1/selectdb/be/src/vec/exprs/vectorized_fn_call.cpp:73
       #7 0x55b14577cfaa in doris::vectorized::VExpr::close(doris::RuntimeState*, doris::vectorized::VExprContext*, doris_udf::FunctionContext::FunctionStateScope) /mnt/hdd01/repo_center/selectdb_dev-1.0.1/selectdb/be/src/vec/exprs/vexpr.cpp:82
       #8 0x55b147c798b1 in doris::vectorized::VectorizedFnCall::close(doris::RuntimeState*, doris::vectorized::VExprContext*, doris_udf::FunctionContext::FunctionStateScope) /mnt/hdd01/repo_center/selectdb_dev-1.0.1/selectdb/be/src/vec/exprs/vectorized_fn_call.cpp:73
       #9 0x55b1442f69f0 in doris::vectorized::VExpr::set_children(doris::RuntimeState*, doris::vectorized::VExprContext*, std::vector<doris::vectorized::VExpr*, std::allocator<doris::vectorized::VExpr*> >) /mnt/hdd01/repo_center/selectdb_dev-1.0.1/selectdb/be/src/vec/exprs/vexpr.h:110
       #10 0x55b1442f6eb9 in doris::vectorized::VectorizedUtils::dfs_peel_conjunct(doris::RuntimeState*, doris::vectorized::VExprContext*, doris::vectorized::VExpr*, int&, std::function<bool (int)>) (/mnt/hdd01/SELECTDB_1.0.1_ASAN/be/lib/palo_be+0x70ebeb9)
       #11 0x55b1442f6ca2 in doris::vectorized::VectorizedUtils::dfs_peel_conjunct(doris::RuntimeState*, doris::vectorized::VExprContext*, doris::vectorized::VExpr*, int&, std::function<bool (int)>) (/mnt/hdd01/SELECTDB_1.0.1_ASAN/be/lib/palo_be+0x70ebca2)
       #12 0x55b1442f4aa7 in doris::ScanNode::_peel_pushed_vconjunct[abi:cxx11](doris::RuntimeState*, std::function<bool (int)> const&) /mnt/hdd01/repo_center/selectdb_dev-1.0.1/selectdb/be/src/exec/scan_node.cpp:59
       #13 0x55b14431c933 in doris::OlapScanNode::remove_pushed_conjuncts(doris::RuntimeState*) /mnt/hdd01/repo_center/selectdb_dev-1.0.1/selectdb/be/src/exec/olap_scan_node.cpp:545
       #14 0x55b14431b21b in doris::OlapScanNode::start_scan(doris::RuntimeState*) /mnt/hdd01/repo_center/selectdb_dev-1.0.1/selectdb/be/src/exec/olap_scan_node.cpp:476
       #15 0x55b144c50972 in doris::vectorized::VOlapScanNode::get_next(doris::RuntimeState*, doris::vectorized::Block*, bool*) /mnt/hdd01/repo_center/selectdb_dev-1.0.1/selectdb/be/src/vec/exec/volap_scan_node.cpp:456
       #16 0x55b144c6bfcb in doris::vectorized::VSortNode::sort_input(doris::RuntimeState*) /mnt/hdd01/repo_center/selectdb_dev-1.0.1/selectdb/be/src/vec/exec/vsort_node.cpp:126
       #17 0x55b144c6ab60 in doris::vectorized::VSortNode::open(doris::RuntimeState*) /mnt/hdd01/repo_center/selectdb_dev-1.0.1/selectdb/be/src/vec/exec/vsort_node.cpp:61
       #18 0x55b14311d742 in doris::PlanFragmentExecutor::open_vectorized_internal() /mnt/hdd01/repo_center/selectdb_dev-1.0.1/selectdb/be/src/runtime/plan_fragment_executor.cpp:280
       #19 0x55b14311cc1f in doris::PlanFragmentExecutor::open() /mnt/hdd01/repo_center/selectdb_dev-1.0.1/selectdb/be/src/runtime/plan_fragment_executor.cpp:255
       #20 0x55b142f0d9ab in doris::FragmentExecState::execute() /mnt/hdd01/repo_center/selectdb_dev-1.0.1/selectdb/be/src/runtime/fragment_mgr.cpp:231
       #21 0x55b142f157d5 in doris::FragmentMgr::_exec_actual(std::shared_ptr<doris::FragmentExecState>, std::function<void (doris::PlanFragmentExecutor*)>) /mnt/hdd01/repo_center/selectdb_dev-1.0.1/selectdb/be/src/runtime/fragment_mgr.cpp:464
       #22 0x55b142f5dcb5 in void std::__invoke_impl<void, void (doris::FragmentMgr::*&)(std::shared_ptr<doris::FragmentExecState>, std::function<void (doris::PlanFragmentExecutor*)>), doris::FragmentMgr*&, std::shared_ptr<doris::FragmentExecState>&, std::function<void (doris::PlanFragmentExecutor*)>&>(std::__invoke_memfun_deref, void (doris::FragmentMgr::*&)(std::shared_ptr<doris::FragmentExecState>, std::function<void (doris::PlanFragmentExecutor*)>), doris::FragmentMgr*&, std::shared_ptr<doris::FragmentExecState>&, std::function<void (doris::PlanFragmentExecutor*)>&) (/mnt/hdd01/SELECTDB_1.0.1_ASAN/be/lib/palo_be+0x5d52cb5)
       #23 0x55b142f5c63a in std::enable_if<is_invocable_r_v<void, void (doris::FragmentMgr::*&)(std::shared_ptr<doris::FragmentExecState>, std::function<void (doris::PlanFragmentExecutor*)>), doris::FragmentMgr*&, std::shared_ptr<doris::FragmentExecState>&, std::function<void (doris::PlanFragmentExecutor*)>&>, void>::type std::__invoke_r<void, void (doris::FragmentMgr::*&)(std::shared_ptr<doris::FragmentExecState>, std::function<void (doris::PlanFragmentExecutor*)>), doris::FragmentMgr*&, std::shared_ptr<doris::FragmentExecState>&, std::function<void (doris::PlanFragmentExecutor*)>&>(void (doris::FragmentMgr::*&)(std::shared_ptr<doris::FragmentExecState>, std::function<void (doris::PlanFragmentExecutor*)>), doris::FragmentMgr*&, std::shared_ptr<doris::FragmentExecState>&, std::function<void (doris::PlanFragmentExecutor*)>&) (/mnt/hdd01/SELECTDB_1.0.1_ASAN/be/lib/palo_be+0x5d5163a)
       #24 0x55b142f5a78d in void std::_Bind_result<void, void (doris::FragmentMgr::*(doris::FragmentMgr*, std::shared_ptr<doris::FragmentExecState>, std::function<void (doris::PlanFragmentExecutor*)>))(std::shared_ptr<doris::FragmentExecState>, std::function<void (doris::PlanFragmentExecutor*)>)>::__call<void, , 0ul, 1ul, 2ul>(std::tuple<>&&, std::_Index_tuple<0ul, 1ul, 2ul>) (/mnt/hdd01/SELECTDB_1.0.1_ASAN/be/lib/palo_be+0x5d4f78d)
       #25 0x55b142f56dfe in void std::_Bind_result<void, void (doris::FragmentMgr::*(doris::FragmentMgr*, std::shared_ptr<doris::FragmentExecState>, std::function<void (doris::PlanFragmentExecutor*)>))(std::shared_ptr<doris::FragmentExecState>, std::function<void (doris::PlanFragmentExecutor*)>)>::operator()<>() /usr/include/c++/11/functional:629
       #26 0x55b142f51b51 in void std::__invoke_impl<void, std::_Bind_result<void, void (doris::FragmentMgr::*(doris::FragmentMgr*, std::shared_ptr<doris::FragmentExecState>, std::function<void (doris::PlanFragmentExecutor*)>))(std::shared_ptr<doris::FragmentExecState>, std::function<void (doris::PlanFragmentExecutor*)>)>&>(std::__invoke_other, std::_Bind_result<void, void (doris::FragmentMgr::*(doris::FragmentMgr*, std::shared_ptr<doris::FragmentExecState>, std::function<void (doris::PlanFragmentExecutor*)>))(std::shared_ptr<doris::FragmentExecState>, std::function<void (doris::PlanFragmentExecutor*)>)>&) (/mnt/hdd01/SELECTDB_1.0.1_ASAN/be/lib/palo_be+0x5d46b51)
       #27 0x55b142f49913 in std::enable_if<is_invocable_r_v<void, std::_Bind_result<void, void (doris::FragmentMgr::*(doris::FragmentMgr*, std::shared_ptr<doris::FragmentExecState>, std::function<void (doris::PlanFragmentExecutor*)>))(std::shared_ptr<doris::FragmentExecState>, std::function<void (doris::PlanFragmentExecutor*)>)>&>, void>::type std::__invoke_r<void, std::_Bind_result<void, void (doris::FragmentMgr::*(doris::FragmentMgr*, std::shared_ptr<doris::FragmentExecState>, std::function<void (doris::PlanFragmentExecutor*)>))(std::shared_ptr<doris::FragmentExecState>, std::function<void (doris::PlanFragmentExecutor*)>)>&>(std::_Bind_result<void, void (doris::FragmentMgr::*(doris::FragmentMgr*, std::shared_ptr<doris::FragmentExecState>, std::function<void (doris::PlanFragmentExecutor*)>))(std::shared_ptr<doris::FragmentExecState>, std::function<void (doris::PlanFragmentExecutor*)>)>&) (/mnt/hdd01/SELECTDB_1.0.1_ASAN/be/lib/palo_be+0x5d3e913)
       #28 0x55b142f41394 in std::_Function_handler<void (), std::_Bind_result<void, void (doris::FragmentMgr::*(doris::FragmentMgr*, std::shared_ptr<doris::FragmentExecState>, std::function<void (doris::PlanFragmentExecutor*)>))(std::shared_ptr<doris::FragmentExecState>, std::function<void (doris::PlanFragmentExecutor*)>)> >::_M_invoke(std::_Any_data const&) /usr/include/c++/11/bits/std_function.h:291
       #29 0x55b142e8c137 in std::function<void ()>::operator()() const /usr/include/c++/11/bits/std_function.h:560
   
   previously allocated by thread T2277 (FragmentMgrThre) here:
       #0 0x55b141fe2097 in operator new(unsigned long) (/mnt/hdd01/SELECTDB_1.0.1_ASAN/be/lib/palo_be+0x4dd7097)
       #1 0x55b1479fccb3 in doris::vectorized::FunctionLike::prepare(doris_udf::FunctionContext*, doris_udf::FunctionContext::FunctionStateScope) /mnt/hdd01/repo_center/selectdb_dev-1.0.1/selectdb/be/src/vec/functions/like.cpp:216
       #2 0x55b1457d7b0d in doris::vectorized::DefaultFunction::prepare(doris_udf::FunctionContext*, doris_udf::FunctionContext::FunctionStateScope) (/mnt/hdd01/SELECTDB_1.0.1_ASAN/be/lib/palo_be+0x85ccb0d)
       #3 0x55b1457828a9 in doris::vectorized::VExpr::init_function_context(doris::vectorized::VExprContext*, doris_udf::FunctionContext::FunctionStateScope, std::shared_ptr<doris::vectorized::IFunctionBase> const&) /mnt/hdd01/repo_center/selectdb_dev-1.0.1/selectdb/be/src/vec/exprs/vexpr.cpp:333
       #4 0x55b147c796da in doris::vectorized::VectorizedFnCall::open(doris::RuntimeState*, doris::vectorized::VExprContext*, doris_udf::FunctionContext::FunctionStateScope) /mnt/hdd01/repo_center/selectdb_dev-1.0.1/selectdb/be/src/vec/exprs/vectorized_fn_call.cpp:66
       #5 0x55b14577cd49 in doris::vectorized::VExpr::open(doris::RuntimeState*, doris::vectorized::VExprContext*, doris_udf::FunctionContext::FunctionStateScope) /mnt/hdd01/repo_center/selectdb_dev-1.0.1/selectdb/be/src/vec/exprs/vexpr.cpp:74
       #6 0x55b147c795f1 in doris::vectorized::VectorizedFnCall::open(doris::RuntimeState*, doris::vectorized::VExprContext*, doris_udf::FunctionContext::FunctionStateScope) /mnt/hdd01/repo_center/selectdb_dev-1.0.1/selectdb/be/src/vec/exprs/vectorized_fn_call.cpp:65
       #7 0x55b14577cd49 in doris::vectorized::VExpr::open(doris::RuntimeState*, doris::vectorized::VExprContext*, doris_udf::FunctionContext::FunctionStateScope) /mnt/hdd01/repo_center/selectdb_dev-1.0.1/selectdb/be/src/vec/exprs/vexpr.cpp:74
       #8 0x55b147c795f1 in doris::vectorized::VectorizedFnCall::open(doris::RuntimeState*, doris::vectorized::VExprContext*, doris_udf::FunctionContext::FunctionStateScope) /mnt/hdd01/repo_center/selectdb_dev-1.0.1/selectdb/be/src/vec/exprs/vectorized_fn_call.cpp:65
       #9 0x55b14577cd49 in doris::vectorized::VExpr::open(doris::RuntimeState*, doris::vectorized::VExprContext*, doris_udf::FunctionContext::FunctionStateScope) /mnt/hdd01/repo_center/selectdb_dev-1.0.1/selectdb/be/src/vec/exprs/vexpr.cpp:74
       #10 0x55b147c795f1 in doris::vectorized::VectorizedFnCall::open(doris::RuntimeState*, doris::vectorized::VExprContext*, doris_udf::FunctionContext::FunctionStateScope) /mnt/hdd01/repo_center/selectdb_dev-1.0.1/selectdb/be/src/vec/exprs/vectorized_fn_call.cpp:65
       #11 0x55b1441f065d in doris::vectorized::VExprContext::open(doris::RuntimeState*) /mnt/hdd01/repo_center/selectdb_dev-1.0.1/selectdb/be/src/vec/exprs/vexpr_context.cpp:56
       #12 0x55b14427c3d3 in doris::ExecNode::open(doris::RuntimeState*) /mnt/hdd01/repo_center/selectdb_dev-1.0.1/selectdb/be/src/exec/exec_node.cpp:232
       #13 0x55b144315722 in doris::OlapScanNode::open(doris::RuntimeState*) /mnt/hdd01/repo_center/selectdb_dev-1.0.1/selectdb/be/src/exec/olap_scan_node.cpp:219
       #14 0x55b144c6aa8e in doris::vectorized::VSortNode::open(doris::RuntimeState*) /mnt/hdd01/repo_center/selectdb_dev-1.0.1/selectdb/be/src/vec/exec/vsort_node.cpp:57
       #15 0x55b14311d742 in doris::PlanFragmentExecutor::open_vectorized_internal() /mnt/hdd01/repo_center/selectdb_dev-1.0.1/selectdb/be/src/runtime/plan_fragment_executor.cpp:280
       #16 0x55b14311cc1f in doris::PlanFragmentExecutor::open() /mnt/hdd01/repo_center/selectdb_dev-1.0.1/selectdb/be/src/runtime/plan_fragment_executor.cpp:255
       #17 0x55b142f0d9ab in doris::FragmentExecState::execute() /mnt/hdd01/repo_center/selectdb_dev-1.0.1/selectdb/be/src/runtime/fragment_mgr.cpp:231
       #18 0x55b142f157d5 in doris::FragmentMgr::_exec_actual(std::shared_ptr<doris::FragmentExecState>, std::function<void (doris::PlanFragmentExecutor*)>) /mnt/hdd01/repo_center/selectdb_dev-1.0.1/selectdb/be/src/runtime/fragment_mgr.cpp:464
       #19 0x55b142f5dcb5 in void std::__invoke_impl<void, void (doris::FragmentMgr::*&)(std::shared_ptr<doris::FragmentExecState>, std::function<void (doris::PlanFragmentExecutor*)>), doris::FragmentMgr*&, std::shared_ptr<doris::FragmentExecState>&, std::function<void (doris::PlanFragmentExecutor*)>&>(std::__invoke_memfun_deref, void (doris::FragmentMgr::*&)(std::shared_ptr<doris::FragmentExecState>, std::function<void (doris::PlanFragmentExecutor*)>), doris::FragmentMgr*&, std::shared_ptr<doris::FragmentExecState>&, std::function<void (doris::PlanFragmentExecutor*)>&) (/mnt/hdd01/SELECTDB_1.0.1_ASAN/be/lib/palo_be+0x5d52cb5)
       #20 0x55b142f5c63a in std::enable_if<is_invocable_r_v<void, void (doris::FragmentMgr::*&)(std::shared_ptr<doris::FragmentExecState>, std::function<void (doris::PlanFragmentExecutor*)>), doris::FragmentMgr*&, std::shared_ptr<doris::FragmentExecState>&, std::function<void (doris::PlanFragmentExecutor*)>&>, void>::type std::__invoke_r<void, void (doris::FragmentMgr::*&)(std::shared_ptr<doris::FragmentExecState>, std::function<void (doris::PlanFragmentExecutor*)>), doris::FragmentMgr*&, std::shared_ptr<doris::FragmentExecState>&, std::function<void (doris::PlanFragmentExecutor*)>&>(void (doris::FragmentMgr::*&)(std::shared_ptr<doris::FragmentExecState>, std::function<void (doris::PlanFragmentExecutor*)>), doris::FragmentMgr*&, std::shared_ptr<doris::FragmentExecState>&, std::function<void (doris::PlanFragmentExecutor*)>&) (/mnt/hdd01/SELECTDB_1.0.1_ASAN/be/lib/palo_be+0x5d5163a)
       #21 0x55b142f5a78d in void std::_Bind_result<void, void (doris::FragmentMgr::*(doris::FragmentMgr*, std::shared_ptr<doris::FragmentExecState>, std::function<void (doris::PlanFragmentExecutor*)>))(std::shared_ptr<doris::FragmentExecState>, std::function<void (doris::PlanFragmentExecutor*)>)>::__call<void, , 0ul, 1ul, 2ul>(std::tuple<>&&, std::_Index_tuple<0ul, 1ul, 2ul>) (/mnt/hdd01/SELECTDB_1.0.1_ASAN/be/lib/palo_be+0x5d4f78d)
       #22 0x55b142f56dfe in void std::_Bind_result<void, void (doris::FragmentMgr::*(doris::FragmentMgr*, std::shared_ptr<doris::FragmentExecState>, std::function<void (doris::PlanFragmentExecutor*)>))(std::shared_ptr<doris::FragmentExecState>, std::function<void (doris::PlanFragmentExecutor*)>)>::operator()<>() /usr/include/c++/11/functional:629
       #23 0x55b142f51b51 in void std::__invoke_impl<void, std::_Bind_result<void, void (doris::FragmentMgr::*(doris::FragmentMgr*, std::shared_ptr<doris::FragmentExecState>, std::function<void (doris::PlanFragmentExecutor*)>))(std::shared_ptr<doris::FragmentExecState>, std::function<void (doris::PlanFragmentExecutor*)>)>&>(std::__invoke_other, std::_Bind_result<void, void (doris::FragmentMgr::*(doris::FragmentMgr*, std::shared_ptr<doris::FragmentExecState>, std::function<void (doris::PlanFragmentExecutor*)>))(std::shared_ptr<doris::FragmentExecState>, std::function<void (doris::PlanFragmentExecutor*)>)>&) (/mnt/hdd01/SELECTDB_1.0.1_ASAN/be/lib/palo_be+0x5d46b51)
       #24 0x55b142f49913 in std::enable_if<is_invocable_r_v<void, std::_Bind_result<void, void (doris::FragmentMgr::*(doris::FragmentMgr*, std::shared_ptr<doris::FragmentExecState>, std::function<void (doris::PlanFragmentExecutor*)>))(std::shared_ptr<doris::FragmentExecState>, std::function<void (doris::PlanFragmentExecutor*)>)>&>, void>::type std::__invoke_r<void, std::_Bind_result<void, void (doris::FragmentMgr::*(doris::FragmentMgr*, std::shared_ptr<doris::FragmentExecState>, std::function<void (doris::PlanFragmentExecutor*)>))(std::shared_ptr<doris::FragmentExecState>, std::function<void (doris::PlanFragmentExecutor*)>)>&>(std::_Bind_result<void, void (doris::FragmentMgr::*(doris::FragmentMgr*, std::shared_ptr<doris::FragmentExecState>, std::function<void (doris::PlanFragmentExecutor*)>))(std::shared_ptr<doris::FragmentExecState>, std::function<void (doris::PlanFragmentExecutor*)>)>&) (/mnt/hdd01/SELECTDB_1.0.1_ASAN/be/lib/palo_be+0x5d3e913)
       #25 0x55b142f41394 in std::_Function_handler<void (), std::_Bind_result<void, void (doris::FragmentMgr::*(doris::FragmentMgr*, std::shared_ptr<doris::FragmentExecState>, std::function<void (doris::PlanFragmentExecutor*)>))(std::shared_ptr<doris::FragmentExecState>, std::function<void (doris::PlanFragmentExecutor*)>)> >::_M_invoke(std::_Any_data const&) /usr/include/c++/11/bits/std_function.h:291
       #26 0x55b142e8c137 in std::function<void ()>::operator()() const /usr/include/c++/11/bits/std_function.h:560
       #27 0x55b1434e035d in doris::FunctionRunnable::run() /mnt/hdd01/repo_center/selectdb_dev-1.0.1/selectdb/be/src/util/threadpool.cpp:42
       #28 0x55b1434db2d7 in doris::ThreadPool::dispatch_thread() /mnt/hdd01/repo_center/selectdb_dev-1.0.1/selectdb/be/src/util/threadpool.cpp:570
       #29 0x55b1434fc7cf in void std::__invoke_impl<void, void (doris::ThreadPool::*&)(), doris::ThreadPool*&>(std::__invoke_memfun_deref, void (doris::ThreadPool::*&)(), doris::ThreadPool*&) /usr/include/c++/11/bits/invoke.h:74
   
   Thread T2277 (FragmentMgrThre) created by T1127 here:
       #0 0x55b141f841e5 in pthread_create (/mnt/hdd01/SELECTDB_1.0.1_ASAN/be/lib/palo_be+0x4d791e5)
   
   Thread T1127 created by T0 here:
       #0 0x55b141f841e5 in pthread_create (/mnt/hdd01/SELECTDB_1.0.1_ASAN/be/lib/palo_be+0x4d791e5)
       #1 0x55b1488379bb in bthread::TaskControl::add_workers(int) /mnt/hdd01/repo_center/selectdb_dev-1.0.1/selectdb/thirdparty/src/incubator-brpc-1.0.0/src/bthread/task_control.cpp:199
       #2 0x55b148824d4c in bthread_setconcurrency /mnt/hdd01/repo_center/selectdb_dev-1.0.1/selectdb/thirdparty/src/incubator-brpc-1.0.0/src/bthread/bthread.cpp:310
       #3 0x55b148767149 in brpc::Server::StartInternal(in_addr const&, brpc::PortRange const&, brpc::ServerOptions const*) /mnt/hdd01/repo_center/selectdb_dev-1.0.1/selectdb/thirdparty/src/incubator-brpc-1.0.0/src/brpc/server.cpp:916
       #4 0x55b148768e69 in brpc::Server::Start(butil::EndPoint const&, brpc::ServerOptions const*) /mnt/hdd01/repo_center/selectdb_dev-1.0.1/selectdb/thirdparty/src/incubator-brpc-1.0.0/src/brpc/server.cpp:1062
       #5 0x55b148768fda in brpc::Server::Start(int, brpc::ServerOptions const*) /mnt/hdd01/repo_center/selectdb_dev-1.0.1/selectdb/thirdparty/src/incubator-brpc-1.0.0/src/brpc/server.cpp:1081
       #6 0x55b1432900b8 in doris::BRpcService::start(int) /mnt/hdd01/repo_center/selectdb_dev-1.0.1/selectdb/be/src/service/brpc_service.cpp:53
       #7 0x55b14202c54d in main /mnt/hdd01/repo_center/selectdb_dev-1.0.1/selectdb/be/src/service/doris_main.cpp:434
       #8 0x7fc520ccb564 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x28564)
   
   SUMMARY: AddressSanitizer: heap-use-after-free /usr/include/c++/11/bits/std_function.h:244 in std::_Function_base::~_Function_base()
   Shadow bytes around the buggy address:
     0x0c1680338270: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
     0x0c1680338280: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
     0x0c1680338290: fa fa fa fa fa fa 00 00 00 00 00 00 00 00 00 00
     0x0c16803382a0: 00 00 00 fa fa fa fa fa fa fa fa fa fa fa fa fa
     0x0c16803382b0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
   =>0x0c16803382c0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa[fa]fa
     0x0c16803382d0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
     0x0c16803382e0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa 00 00
     0x0c16803382f0: 00 00 00 00 00 00 00 00 00 00 00 03 fa fa fa fa
     0x0c1680338300: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
     0x0c1680338310: fa fa fa fa fa fa fa fa fa fa fa fa fa 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
   ==1380518==ABORTING
   start time: Tue May 31 08:28:42 PM CST 2022
   WARNING: Logging before InitGoogleLogging() is written to STDERR
   I0531 20:28:42.428324 1442387 env.cpp:46] Env init successfully.
   I0000 00:00:00.000000 1442387 vlog_is_on.cc:197] RAW: Set VLOG level for "*" to 10
   
   ### What You Expected?
   
   no core
   
   ### How to Reproduce?
   
   **in core, i find this sql:**
   SELECT     repo_name,     sum(fork) AS forks,     sum(star) AS stars,     round(sum(star) / sum(fork), 3) AS ratio FROM (     SELECT         repo_name,         CASE WHEN event_type = 'ForkEvent' THEN 1 ELSE 0 END AS fork,         CASE WHEN event_type = 'WatchEvent' THEN 1 ELSE 0 END AS star     FROM github_events     WHERE event_type IN ('ForkEvent', 'WatchEvent') ) t GROUP BY repo_name HAVING (stars > 100) AND (forks > 100) ORDER BY ratio DESC LIMIT 50;
   
   **fe.audit.log** 
   2022-05-31 19:56:08,949 [query] |Client=127.0.0.1:60906|User=root|Db=default_cluster:regression_test_github_events|State=ERR|Time=80345|ScanBytes=0|ScanRows=0|ReturnRows=0|StmtId=3780|QueryId=47798549c30a484f-8539885620b4ddbb|IsQuery=true|feIp=172.21.16.15|Stmt=SELECT     repo_name,     sum(fork) AS forks,     sum(star) AS stars,     round(sum(star) / sum(fork), 3) AS ratio FROM (     SELECT         repo_name,         CASE WHEN event_type = 'ForkEvent' THEN 1 ELSE 0 END AS fork,         CASE WHEN event_type = 'WatchEvent' THEN 1 ELSE 0 END AS star     FROM github_events     WHERE event_type IN ('ForkEvent', 'WatchEvent') ) t GROUP BY repo_name HAVING (stars > 100) AND (forks > 100) ORDER BY ratio DESC LIMIT 50 |CpuTimeMS=0|SqlHash=4d00f27cda2a2437e42d9c30723d4c74|peakMemoryBytes=0
   
   **fe.log**
   2022-05-31 19:56:08,946 WARN (doris-mysql-nio-pool-3|153) [Coordinator.getNext():787] get next fail, need cancel. query id: 47798549c30a484f-8539885620b4ddbb
   2022-05-31 19:56:08,946 WARN (doris-mysql-nio-pool-3|153) [Coordinator.updateStatus():769] one instance report fail throw updateStatus(), need cancel. job id: -1, query id: 47798549c30a484f-8539885620b4ddbb, instance id: NaN
   2022-05-31 19:56:08,948 WARN (doris-mysql-nio-pool-3|153) [StmtExecutor.execute():463] execute Exception. stmt[3780, 47798549c30a484f-8539885620b4ddbb]
   
   but, i use mysql client to query this, it work, still slow.
   ![image](https://user-images.githubusercontent.com/3887565/171180684-70229aa9-2037-49e6-aeb4-8fb22bb53c94.png)
   
   
   
   ### Anything Else?
   
   _No response_
   
   ### Are you willing to submit PR?
   
   - [ ] Yes I am willing to submit a PR!
   
   ### Code of Conduct
   
   - [X] I agree to follow this project's [Code of Conduct](https://www.apache.org/foundation/policies/conduct)
   


-- 
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: commits-unsubscribe@doris.apache.org.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org