xinyiZzz opened a new pull request, #20635: URL: https://github.com/apache/doris/pull/20635
## Proposed changes Issue Number: close #xxx more complete fix: #20564 ``` F0609 13:58:40.029528 1179830 assert_cast.h:46] Bad cast from type:doris::vectorized::ColumnNullable* to doris::vectorized::ColumnVector<unsigned char> const* *** Check failure stack trace: *** @ 0x5650c8670e2d google::LogMessage::Fail() @ 0x5650c8673369 google::LogMessage::SendToLog() @ 0x5650c8670996 google::LogMessage::Flush() @ 0x5650c86739d9 google::LogMessageFatal::~LogMessageFatal() @ 0x5650c1f97c04 assert_cast<>() @ 0x5650c52b39e4 doris::vectorized::FunctionCase<>::execute_impl<>() @ 0x5650c52b260d doris::vectorized::FunctionCase<>::execute_get_then_null<>() @ 0x5650c52a4b97 doris::vectorized::FunctionCase<>::execute_get_when_null<>() @ 0x5650c52a3d97 doris::vectorized::FunctionCase<>::execute_get_type() @ 0x5650c52a3a5c doris::vectorized::FunctionCase<>::execute_impl() @ 0x5650c3ea2284 doris::vectorized::DefaultExecutable::execute_impl() @ 0x5650c4e6187f doris::vectorized::PreparedFunctionImpl::_execute_skipped_constant_deal() @ 0x5650c4e5eda5 doris::vectorized::PreparedFunctionImpl::execute_without_low_cardinality_columns() @ 0x5650c4e5ee20 doris::vectorized::PreparedFunctionImpl::execute() @ 0x5650c3ea0d3e doris::vectorized::IFunctionBase::execute() @ 0x5650c3ece245 doris::vectorized::VCaseExpr::execute() @ 0x5650c3ed0230 doris::vectorized::VExprContext::execute() @ 0x5650c3e6e5a7 doris::vectorized::AggFnEvaluator::_calc_argment_columns() @ 0x5650c3e6e2ed doris::vectorized::AggFnEvaluator::execute_single_add() @ 0x5650c3b797c0 doris::vectorized::AggregationNode::_execute_without_key() @ 0x5650c3c968a7 std::__invoke_impl<>() @ 0x5650c3c96780 _ZSt10__invoke_rIN5doris6StatusERMNS0_10vectorized15AggregationNodeEFS1_PNS2_5BlockEEJRPS3_S5_EENSt9enable_ifIX16is_invocable_r_vIT_T0_DpT1_EESC_E4typeEOSD_DpOSE_ @ 0x5650c3c96715 _ZNSt12_Bind_resultIN5doris6StatusEFMNS0_10vectorized15AggregationNodeEFS1_PNS2_5BlockEEPS3_St12_PlaceholderILi1EEEE6__callIS1_JOS5_EJLm0ELm1EEEET_OSt5tupleIJDpT0_EESt12_Index_tupleIJXspT1_EEE @ 0x5650c3c96695 std::_Bind_result<>::operator()<>() @ 0x5650c3c96638 std::__invoke_impl<>() @ 0x5650c3c965d8 _ZSt10__invoke_rIN5doris6StatusERSt12_Bind_resultIS1_FMNS0_10vectorized15AggregationNodeEFS1_PNS3_5BlockEEPS4_St12_PlaceholderILi1EEEEJS6_EENSt9enable_ifIX16is_invocable_r_vIT_T0_DpT1_EESG_E4typeEOSH_DpOSI_ @ 0x5650c3c964a8 std::_Function_handler<>::_M_invoke() @ 0x5650c3c180f0 std::function<>::operator()() @ 0x5650c3b7d2ca doris::vectorized::AggregationNode::sink() @ 0x5650c3b7d10d doris::vectorized::AggregationNode::open() @ 0x5650bd7008a7 doris::PlanFragmentExecutor::open_vectorized_internal() @ 0x5650bd700285 doris::PlanFragmentExecutor::open() *** Query id: b818173876041bb-98411315b230fcca *** *** Aborted at 1686290320 (unix time) try "date -d @1686290320" if you are using GNU date *** *** Current BE git commitID: 238c1b64e5 *** *** SIGABRT unknown detail explain (@0x4200011fed5) received by PID 1179349 (TID 1179830 OR 0x7f2546fbf700) from PID 1179349; stack trace: *** 0# doris::signal::(anonymous namespace)::FailureSignalHandler(int, siginfo_t*, void*) at doris/core/be/src/common/signal_handler.h:413 1# 0x00007F264E8C0400 in /lib64/libc.so.6 2# __GI_raise in /lib64/libc.so.6 3# __GI_abort in /lib64/libc.so.6 4# 0x00005650C867B819 in doris/core/output_run/be/lib/doris_be 5# 0x00005650C8670E2D in doris/core/output_run/be/lib/doris_be 6# google::LogMessage::SendToLog() in doris/core/output_run/be/lib/doris_be 7# google::LogMessage::Flush() in doris/core/output_run/be/lib/doris_be 8# google::LogMessageFatal::~LogMessageFatal() in doris/core/output_run/be/lib/doris_be 9# doris::vectorized::ColumnVector<unsigned char> const* assert_cast<doris::vectorized::ColumnVector<unsigned char> const*, doris::vectorized::IColumn const*>(doris::vectorized::IColumn const*&&) in doris/core/output_run/be/lib/doris_be 10# doris::Status doris::vectorized::FunctionCase<false, false>::execute_impl<doris::vectorized::ColumnVector<long>, false, true>(std::shared_ptr<doris::vectorized::IDataType const> const&, doris::vectorized::Block&, unsigned long, doris::vectorized::CaseWhenColumnHolder) at doris/core/be/src/vec/functions/function_case.h:245 11# doris::Status doris::vectorized::FunctionCase<false, false>::execute_get_then_null<doris::vectorized::ColumnVector<long>, false>(std::shared_ptr<doris::vectorized::IDataType const> const&, doris::vectorized::Block&, std::vector<unsigned long, std::allocator<unsigned long> > const&, unsigned long, unsigned long) at doris/core/be/src/vec/functions/function_case.h:355 12# doris::Status doris::vectorized::FunctionCase<false, false>::execute_get_when_null<doris::vectorized::ColumnVector<long> >(std::shared_ptr<doris::vectorized::IDataType const> const&, doris::vectorized::Block&, std::vector<unsigned long, std::allocator<unsigned long> > const&, unsigned long, unsigned long) in doris/core/output_run/be/lib/doris_be 13# doris::vectorized::FunctionCase<false, false>::execute_get_type(std::shared_ptr<doris::vectorized::IDataType const> const&, doris::vectorized::Block&, std::vector<unsigned long, std::allocator<unsigned long> > const&, unsigned long, unsigned long) at doris/core/be/src/vec/functions/function_case.h:408 14# doris::vectorized::FunctionCase<false, false>::execute_impl(doris::FunctionContext*, doris::vectorized::Block&, std::vector<unsigned long, std::allocator<unsigned long> > const&, unsigned long, unsigned long) at doris/core/be/src/vec/functions/function_case.h:415 ...skipping... pp:268 19# doris::vectorized::IFunctionBase::execute(doris::FunctionContext*, doris::vectorized::Block&, std::vector<unsigned long, std::allocator<unsigned long> > const&, unsigned long, unsigned long, bool) at doris/core/be/src/vec/functions/function.h:171 20# doris::vectorized::VCaseExpr::execute(doris::vectorized::VExprContext*, doris::vectorized::Block*, int*) at doris/core/be/src/vec/exprs/vcase_expr.cpp:113 21# doris::vectorized::VExprContext::execute(doris::vectorized::Block*, int*) at doris/core/be/src/vec/exprs/vexpr_context.cpp:61 22# doris::vectorized::AggFnEvaluator::_calc_argment_columns(doris::vectorized::Block*) at doris/core/be/src/vec/exprs/vectorized_agg_fn.cpp:286 23# doris::vectorized::AggFnEvaluator::execute_single_add(doris::vectorized::Block*, char*, doris::vectorized::Arena*) at doris/core/be/src/vec/exprs/vectorized_agg_fn.cpp:210 24# doris::vectorized::AggregationNode::_execute_without_key(doris::vectorized::Block*) at doris/core/be/src/vec/exec/vaggregation_node.cpp:755 25# doris::Status std::__invoke_impl<doris::Status, doris::Status (doris::vectorized::AggregationNode::*&)(doris::vectorized::Block*), doris::vectorized::AggregationNode*&, doris::vectorized::Block*>(std::__invoke_memfun_deref, doris::Status (doris::vectorized::AggregationNode::*&)(doris::vectorized::Block*), doris::vectorized::AggregationNode*&, doris::vectorized::Block*&&) at doris/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/invoke.h:74 26# std::enable_if<is_invocable_r_v<doris::Status, doris::Status (doris::vectorized::AggregationNode::*&)(doris::vectorized::Block*), doris::vectorized::AggregationNode*&, doris::vectorized::Block*>, doris::Status>::type std::__invoke_r<doris::Status, doris::Status (doris::vectorized::AggregationNode::*&)(doris::vectorized::Block*), doris::vectorized::AggregationNode*&, doris::vectorized::Block*>(doris::Status (doris::vectorized::AggregationNode::*&)(doris::vectorized::Block*), doris::vectorized::AggregationNode*&, doris::vectorized::Block*&&) at doris/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/invoke.h:114 27# doris::Status std::_Bind_result<doris::Status, doris::Status (doris::vectorized::AggregationNode::*(doris::vectorized::AggregationNode*, std::_Placeholder<1>))(doris::vectorized::Block*)>::__call<doris::Status, doris::vectorized::Block*&&, 0ul, 1ul>(std::tuple<doris::vectorized::Block*&&>&&, std::_Index_tuple<0ul, 1ul>) at doris/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/functional:570 28# doris::Status std::_Bind_result<doris::Status, doris::Status (doris::vectorized::AggregationNode::*(doris::vectorized::AggregationNode*, std::_Placeholder<1>))(doris::vectorized::Block*)>::operator()<doris::vectorized::Block*>(doris::vectorized::Block*&&) at doris/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/functional:629 29# doris::Status std::__invoke_impl<doris::Status, std::_Bind_result<doris::Status, doris::Status (doris::vectorized::AggregationNode::*(doris::vectorized::AggregationNode*, std::_Placeholder<1>))(doris::vectorized::Block*)>&, doris::vectorized::Block*>(std::__invoke_other, std::_Bind_result<doris::Status, doris::Status (doris::vectorized::AggregationNode::*(doris::vectorized::AggregationNode*, std::_Placeholder<1>))(doris::vectorized::Block*)>&, doris::vectorized::Block*&&) at doris/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/invoke.h:61 30# std::enable_if<is_invocable_r_v<doris::Status, std::_Bind_result<doris::Status, doris::Status (doris::vectorized::AggregationNode::*(doris::vectorized::AggregationNode*, std::_Placeholder<1>))(doris::vectorized::Block*)>&, doris::vectorized::Block*>, doris::Status>::type std::__invoke_r<doris::Status, std::_Bind_result<doris::Status, doris::Status (doris::vectorized::AggregationNode::*(doris::vectorized::AggregationNode*, std::_Placeholder<1>))(doris::vectorized::Block*)>&, doris::vectorized::Block*>(std::_Bind_result<doris::Status, doris::Status (doris::vectorized::AggregationNode::*(doris::vectorized::AggregationNode*, std::_Placeholder<1>))(doris::vectorized::Block*)>&, doris::vectorized::Block*&&) at doris/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/invoke.h:114 31# std::_Function_handler<doris::Status (doris::vectorized::Block*), std::_Bind_result<doris::Status, doris::Status (doris::vectorized::AggregationNode::*(doris::vectorized::AggregationNode*, std::_Placeholder<1>))(doris::vectorized::Block*)> >::_M_invoke(std::_Any_data const&, doris::vectorized::Block*&&) at doris/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/std_function.h:291 32# std::function<doris::Status (doris::vectorized::Block*)>::operator()(doris::vectorized::Block*) const at doris/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/std_function.h:560 33# doris::vectorized::AggregationNode::sink(doris::RuntimeState*, doris::vectorized::Block*, bool) at doris/core/be/src/vec/exec/vaggregation_node.cpp:588 34# doris::vectorized::AggregationNode::open(doris::RuntimeState*) at doris/core/be/src/vec/exec/vaggregation_node.cpp:530 35# doris::PlanFragmentExecutor::open_vectorized_internal() at doris/core/be/src/runtime/plan_fragment_executor.cpp:310 36# doris::PlanFragmentExecutor::open() at doris/core/be/src/runtime/plan_fragment_executor.cpp:273 37# doris::FragmentExecState::execute() at doris/core/be/src/runtime/fragment_mgr.cpp:262 38# doris::FragmentMgr::_exec_actual(std::shared_ptr<doris::FragmentExecState>, std::function<void (doris::RuntimeState*, doris::Status*)> const&) at doris/core/be/src/runtime/fragment_mgr.cpp:526 39# doris::FragmentMgr::exec_plan_fragment(doris::TExecPlanFragmentParams const&, std::function<void (doris::RuntimeState*, doris::Status*)> const&)::$_0::operator()() const at doris/core/be/src/runtime/fragment_mgr.cpp:819 40# void 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&) at doris/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/invoke.h:61 41# std::enable_if<is_invocable_r_v<void, doris::FragmentMgr::exec_plan_fragment(doris::TExecPlanFragmentParams const&, std::function<void (doris::RuntimeState*, doris::Status*)> const&)::$_0&>, void>::type 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&) at doris/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/invoke.h:117 42# 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&) at doris/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/std_function.h:291 43# std::function<void ()>::operator()() const at doris/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/std_function.h:560 44# doris::FunctionRunnable::run() at doris/core/be/src/util/threadpool.cpp:48 45# doris::ThreadPool::dispatch_thread() at doris/core/be/src/util/threadpool.cpp:531 46# void std::__invoke_impl<void, void (doris::ThreadPool::*&)(), doris::ThreadPool*&>(std::__invoke_memfun_deref, void (doris::ThreadPool::*&)(), doris::ThreadPool*&) at doris/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/invoke.h:74 47# std::__invoke_result<void (doris::ThreadPool::*&)(), doris::ThreadPool*&>::type std::__invoke<void (doris::ThreadPool::*&)(), doris::ThreadPool*&>(void (doris::ThreadPool::*&)(), doris::ThreadPool*&) at doris/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/invoke.h:96 48# void std::_Bind<void (doris::ThreadPool::*(doris::ThreadPool*))()>::__call<void, , 0ul>(std::tuple<>&&, std::_Index_tuple<0ul>) at doris/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/functional:420 49# void std::_Bind<void (doris::ThreadPool::*(doris::ThreadPool*))()>::operator()<, void>() at doris/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/functional:503 50# void std::__invoke_impl<void, std::_Bind<void (doris::ThreadPool::*(doris::ThreadPool*))()>&>(std::__invoke_other, std::_Bind<void (doris::ThreadPool::*(doris::ThreadPool*))()>&) at doris/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/invoke.h:61 51# 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*))()>&) at doris/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/invoke.h:117 52# std::_Function_handler<void (), std::_Bind<void (doris::ThreadPool::*(doris::ThreadPool*))()> >::_M_invoke(std::_Any_data const&) at doris/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/std_function.h:291 53# std::function<void ()>::operator()() const at doris/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/std_function.h:560 54# doris::Thread::supervise_thread(void*) at doris/core/be/src/util/thread.cpp:465 55# start_thread in /lib64/libpthread.so.0 56# __GI___clone in /lib64/libc.so.6 ``` ## Further comments If this is a relatively large or complex change, kick off the discussion at [d...@doris.apache.org](mailto:d...@doris.apache.org) by explaining why you chose the solution you did and what alternatives you considered, etc... -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org