Skip to content

[Bug] BE Crash while sql executing and is non-reproducible #34333

@TomaYoko

Description

@TomaYoko

Search before asking

  • I had searched in the issues and found no similar issues.

Version

2.0.3

What's Wrong?

be crash

#0 0x00007fd88d764387 in raise () from /lib64/libc.so.6
#1 0x00007fd88d765a78 in abort () from /lib64/libc.so.6
#2 0x0000558f46bc1bca in __gnu_cxx::__verbose_terminate_handler () at ../../../../libstdc++-v3/libsupc++/vterminate.cc:95
#3 0x0000558f46bc0336 in __cxxabiv1::__terminate (handler=)
at ../../../../libstdc++-v3/libsupc++/eh_terminate.cc:48
#4 0x0000558f46bc03a1 in std::terminate () at ../../../../libstdc++-v3/libsupc++/eh_terminate.cc:58
#5 0x0000558f46bc04f4 in __cxxabiv1::__cxa_throw (obj=,
tinfo=0x558f47289cd0 , dest=0x558f46bcef40 std::runtime_error::~runtime_error())
at ../../../../libstdc++-v3/libsupc++/eh_throw.cc:95
#6 0x0000558f43beb9f7 in doris::vectorized::BlockSupplierSortCursorImpl::has_next_block (this=0x7fd0e6b6b8c0)
at /root/doris/be/src/vec/core/sort_cursor.h:254
#7 0x0000558f43beac7b in doris::vectorized::VSortedRunMerger::has_next_block (this=this@entry=0x7fd200be9240, current=...)
at /root/doris/be/src/vec/runtime/vsorted_run_merger.cpp:232
#8 0x0000558f43be991a in doris::vectorized::VSortedRunMerger::next_heap (this=0x7fd200be9240, current=...)
at /root/doris/be/src/vec/runtime/vsorted_run_merger.cpp:224
#9 doris::vectorized::VSortedRunMerger::get_next (this=0x7fd200be9240, output_block=0x7f895eb125d0, eos=0x7fd4a0dace71)
at /root/doris/be/src/vec/runtime/vsorted_run_merger.cpp:193
#10 0x0000558f43bc7df4 in doris::vectorized::VDataStreamRecvr::get_next (this=0x7fd85e93ad80, block=0x7f895eb125d0,
eos=0x7fd4a0dace71) at /root/doris/be/src/vec/runtime/vdata_stream_recvr.cpp:406
#11 0x0000558f40491809 in doris::vectorized::VExchangeNode::get_next (this=0x7fd5fab94400, state=0x7fd4a0e78200,
block=0x7f895eb125d0, eos=0x7fd4a0dace71) at /root/doris/be/src/vec/exec/vexchange_node.cpp:106
#12 0x0000558f3c524e71 in std::__invoke_impl<doris::Status, doris::Status (doris::ExecNode::&)(doris::RuntimeState, doris::vectorized::Block*, bool*), doris::ExecNode*&, doris::RuntimeState*, doris::vectorized::Block*, bool*> (__f=,
__t=, __args=, __args=, __args=)
at /var/local/ldb-toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/invoke.h:74
#13 std::__invoke<doris::Status (doris::ExecNode::&)(doris::RuntimeState, doris::vectorized::Block*, bool*), doris::ExecNode*&, doris::RuntimeState*, doris::vectorized::Block*, bool*> (__fn=, __args=,
__args=, __args=, __args=)
at /var/local/ldb-toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/invoke.h:96
#14 std::_Bind<doris::Status (doris::ExecNode::(doris::ExecNode, 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>) (this=, __args=...)
at /var/local/ldb-toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/functional:420
--Type for more, q to quit, c to continue without paging--
#15 std::_Bind<doris::Status (doris::ExecNode::(doris::ExecNode, 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*&&) (this=, __args=,
__args=, __args=)
at /var/local/ldb-toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/functional:503
#16 std::__invoke_impl<doris::Status, std::_Bind<doris::Status (doris::ExecNode::(doris::ExecNode, 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::ExecNode, std::_Placeholder<1>, std::_Placeholder<2>, std::_Placeholder<3>))(doris::RuntimeState*, doris::vectorized::Block*, bool*)>&, doris::RuntimeState*&&, doris::vectorized::Block*&&, bool*&&) (__f=..., __args=, __args=, __args=)
at /var/local/ldb-toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/invoke.h:61
#17 std::__invoke_r<doris::Status, std::_Bind<doris::Status (doris::ExecNode::(doris::ExecNode, 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::ExecNode, std::_Placeholder<1>, std::_Placeholder<2>, std::_Placeholder<3>))(doris::RuntimeState*, doris::vectorized::Block*, bool*)>&, doris::RuntimeState*&&, doris::vectorized::Block*&&, bool*&&) (__fn=..., __args=, __args=, __args=)
at /var/local/ldb-toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/invoke.h:114
#18 std::_Function_handler<doris::Status (doris::RuntimeState*, doris::vectorized::Block*, bool*), std::_Bind<doris::Status (doris::ExecNode::(doris::ExecNode, 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*&&)
(__functor=..., __args=, __args=, __args=)
at /var/local/ldb-toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/std_function.h:291
#19 0x0000558f3c5287d9 in std::function<doris::Status (doris::RuntimeState*, doris::vectorized::Block*, bool*)>::operator()(doris::RuntimeState*, doris::vectorized::Block*, bool*) const (this=0x7f895eb12520, __args=0x7fd4a0dace71, __args=0x7fd4a0dace71,
__args=0x7fd4a0dace71)
at /var/local/ldb-toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/std_function.h:560
#20 doris::ExecNode::get_next_after_projects(doris::RuntimeState*, doris::vectorized::Block*, bool*, std::function<doris::Status (doris::RuntimeState*, doris::vectorized::Block*, bool*)> const&, bool) (this=0x7fd5fab94400, state=0x7fd4a0e78200,
block=0x7f895eb125d0, eos=, func=..., clear_data=)
at /root/doris/be/src/exec/exec_node.cpp:589
#21 0x0000558f3c5222a2 in doris::PlanFragmentExecutor::get_vectorized_internal (this=this@entry=0x7fd4a0dacd78,
block=block@entry=0x7f895eb125d0, eos=eos@entry=0x7f895eb126d7)
at /root/doris/be/src/runtime/plan_fragment_executor.cpp:353
#22 0x0000558f3c521bd0 in doris::PlanFragmentExecutor::open_vectorized_internal (this=this@entry=0x7fd4a0dacd78)
--Type for more, q to quit, c to continue without paging--
at /root/doris/be/src/runtime/plan_fragment_executor.cpp:324
#23 0x0000558f3c520ef6 in doris::PlanFragmentExecutor::open (this=0x7fd4a0dacd78)
at /root/doris/be/src/runtime/plan_fragment_executor.cpp:262
#24 0x0000558f3c4a42e1 in doris::FragmentExecState::execute (this=0x7fd4a0dacd00)
at /root/doris/be/src/runtime/fragment_mgr.cpp:264
#25 0x0000558f3c4a8b1d in doris::FragmentMgr::_exec_actual(std::shared_ptrdoris::FragmentExecState, std::function<void (doris::RuntimeState*, doris::Status*)> const&) (this=this@entry=0x7fd86f997000, exec_state=..., cb=...)
at /root/doris/be/src/runtime/fragment_mgr.cpp:537
#26 0x0000558f3c4b49d9 in doris::FragmentMgr::exec_plan_fragment(doris::TExecPlanFragmentParams const&, std::function<void (doris::RuntimeState*, doris::Status*)> const&)::$_0::operator()() const (this=)
at /root/doris/be/src/runtime/fragment_mgr.cpp:847
#27 std::__invoke_impl<void, doris::FragmentMgr::exec_plan_fragment(doris::TExecPlanFragmentParams const&, std::function<void (doris::RuntimeState*, doris::Status*)> const&)::$_0&>(std::__invoke_other, doris::FragmentMgr::exec_plan_fragment(doris::TExecPlanFragmentParams const&, std::function<void (doris::RuntimeState*, doris::Status*)> const&)::$_0&) (__f=...)
at /var/local/ldb-toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/invoke.h:61
#28 std::__invoke_r<void, doris::FragmentMgr::exec_plan_fragment(doris::TExecPlanFragmentParams const&, std::function<void (doris::RuntimeState*, doris::Status*)> const&)::$_0&>(doris::FragmentMgr::exec_plan_fragment(doris::TExecPlanFragmentParams const&,std::function<void (doris::RuntimeState*, doris::Status*)> const&)::$_0&) (__fn=...)
at /var/local/ldb-toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/invoke.h:111
#29 std::_Function_handler<void (), doris::FragmentMgr::exec_plan_fragment(doris::TExecPlanFragmentParams const&, std::function<void (doris::RuntimeState*, doris::Status*)> const&)::$_0>::_M_invoke(std::_Any_data const&) (__functor=...)
at /var/local/ldb-toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/std_function.h:291
#30 0x0000558f3c70e33f in doris::ThreadPool::dispatch_thread (this=0x7fd86f940a80)
at /root/doris/be/src/util/threadpool.cpp:533
#31 0x0000558f3c7042bc in std::function<void ()>::operator()() const (this=0x19a677)
at /var/local/ldb-toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/std_function.h:560
#32 doris::Thread::supervise_thread (arg=0x7fd858982dc0) at /root/doris/be/src/util/thread.cpp:498
#33 0x00007fd88cdfdea5 in start_thread () from /lib64/libpthread.so.0
#34 0x00007fd88d82cb0d in clone () from /lib64/libc.so.6

What You Expected?

fix it

How to Reproduce?

No response

Anything Else?

No response

Are you willing to submit PR?

  • Yes I am willing to submit a PR!

Code of Conduct

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions