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

Reply via email to