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
[[email protected]](mailto:[email protected]) 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: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]