-
Notifications
You must be signed in to change notification settings - Fork 3.7k
[fix](agg) prevent core dump in ColumnArray::size_at when handling type mismatch in streaming_agg_serialize_to_column #50001
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
…pe mismatch in streaming_agg_serialize_to_column
|
Thank you for your contribution to Apache Doris. Please clearly describe your PR:
|
|
run buildall |
TPC-H: Total hot run time: 33528 ms |
TPC-DS: Total hot run time: 192691 ms |
ClickBench: Total hot run time: 30.93 s |
BE UT Coverage ReportIncrement line coverage Increment coverage report
|
yiguolei
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
pls add some test
| col_src.get_nested_column()); | ||
| vec.insert_from(vec_src, i); | ||
| } else if constexpr (std::is_same_v<Data, AggregateFunctionArrayAggData<void>>) { | ||
| to_nested_col.insert_from(col_src.get_nested_column(), i); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
auto& vec = col_null->get_nested_column();
vec.insert_from(col_src.get_nested_column(), i);
|
run buildall |
TPC-H: Total hot run time: 33939 ms |
TPC-DS: Total hot run time: 193317 ms |
ClickBench: Total hot run time: 31.19 s |
BE UT Coverage ReportIncrement line coverage Increment coverage report
|
86e9c15 to
61ebb0e
Compare
|
run buildall |
12185bb to
9aace24
Compare
|
run buildall |
TPC-H: Total hot run time: 35277 ms |
TPC-DS: Total hot run time: 186457 ms |
ClickBench: Total hot run time: 30.65 s |
BE UT Coverage ReportIncrement line coverage Increment coverage report
|
|
run beut |
BE UT Coverage ReportIncrement line coverage Increment coverage report
|
HappenLee
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
|
PR approved by at least one committer and no changes requested. |
|
PR approved by anyone and no changes requested. |
yiguolei
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
…pe mismatch in streaming_agg_serialize_to_column (#50001) ### What problem does this PR solve? Problem Summary: core ``` *** is nereids: 1 *** *** tablet id: 0 *** *** Aborted at 1744342233 (unix time) try "date -d @1744342233" if you are using GNU date *** *** Current BE git commitID: 2503281 *** *** SIGSEGV unknown detail explain (@0x0) received by PID 681431 (TID 683727 OR 0x7fcd153a0700) from PID 0; stack trace: *** 0# doris::signal::(anonymous namespace)::FailureSignalHandler(int, siginfo_t*, void*) in /usr/local/service/doris/lib/be/doris_be 1# os::Linux::chained_handler(int, siginfo*, void*) in /usr/local/jdk/jre/lib/amd64/server/libjvm.so 2# JVM_handle_linux_signal in /usr/local/jdk/jre/lib/amd64/server/libjvm.so 3# signalHandler(int, siginfo*, void*) in /usr/local/jdk/jre/lib/amd64/server/libjvm.so 4# 0x00007FD26771E400 in /lib64/libc.so.6 5# doris::vectorized::ColumnArray::insert_from(doris::vectorized::IColumn const&, unsigned long) in /usr/local/service/doris/lib/be/doris_be 6# doris::vectorized::ColumnNullable::insert_from(doris::vectorized::IColumn const&, unsigned long) in /usr/local/service/doris/lib/be/doris_be 7# doris::vectorized::AggregateFunctionCollect<doris::vectorized::AggregateFunctionArrayAggData<void>, std::integral_constant<bool, false>, std::integral_constant<bool, true> >::streaming_agg_serialize_to_column(doris::vectorized::IColumn const**, COW<doris::vectorized::IColumn>::mutable_ptr<doris::vectorized::IColumn>&, unsigned long, doris::vectorized::Arena*) const in /usr/local/service/doris/lib/be/doris_be 8# doris::vectorized::AggFnEvaluator::streaming_agg_serialize_to_column(doris::vectorized::Block*, COW<doris::vectorized::IColumn>::mutable_ptr<doris::vectorized::IColumn>&, unsigned long, doris::vectorized::Arena*) in /usr/local/service/doris/lib/be/doris_be 9# _ZNSt8__detail9__variant17__gen_vtable_implINS0_12_Multi_arrayIPFNS0_21__deduce_visit_resultIN5doris6StatusEEEONS4_10vectorized8OverloadIJZNS4_8pipeline22StreamingAggLocalState28_pre_agg_with_serialized_keyEPNS7_5BlockESC_E3$_0ZNSA_28_pre_agg_with_serialized_keyESC_SC_E3$_1EEERSt7variantIJNS7_16MethodSerializedI9PHHashMapINS4_9StringRefEPc11DefaultHashISK_vELb0EEEENS7_15MethodOneNumberIhSJ_IhSL_SM_IhvELb0EEEENSQ_ItSJ_ItSL_SM_ItvELb0EEEENSQ_IjSJ_IjSL_9HashCRC32IjELb0EEEENSQ_ImSJ_ImSL_SX_ImELb0EEEENS7_19MethodStringNoCacheINS4_13StringHashMapISL_9AllocatorILb1ELb1ELb0E22DefaultMemoryAllocatorEEEEENSQ_INS7_7UInt128ESJ_IS1B_SL_SX_IS1B_ELb0EEEENSQ_IjSJ_IjSL_14HashMixWrapperIjSY_ELb0EEEENSQ_ImSJ_ImSL_S1F_ImS11_ELb0EEEENSQ_IS1B_SJ_IS1B_SL_S1F_IS1B_S1C_ELb0EEEENS7_26MethodSingleNullableColumnINSQ_IhNS7_15DataWithNullKeyISS_EEEEEENS1P_INSQ_ItNS1Q_ISV_EEEEEENS1P_INSQ_IjNS1Q_ISZ_EEEEEENS1P_INSQ_ImNS1Q_IS12_EEEEEENS1P_INSQ_IjNS1Q_IS1H_EEEEEENS1P_INSQ_ImNS1Q_IS1K_EEEEEENS1P_INSQ_IS1B_NS1Q_IS1D_EEEEEENS1P_INSQ_IS1B_NS1Q_IS1N_EEEEEENS1P_INS14_INS1Q_IS19_EEEEEENS7_15MethodKeysFixedIS12_Lb0EEENS2I_IS12_Lb1EEENS2I_IS1D_Lb0EEENS2I_IS1D_Lb1EEENS2I_ISJ_INS7_7UInt256ESL_SX_IS2N_ELb0EELb0EEENS2I_IS2P_Lb1EEENS2I_ISJ_INS7_7UInt136ESL_SX_IS2S_ELb0EELb0EEENS2I_IS2U_Lb1EEENS2I_IS1K_Lb0EEENS2I_IS1K_Lb1EEENS2I_IS1N_Lb0EEENS2I_IS1N_Lb1EEENS2I_ISJ_IS2N_SL_S1F_IS2N_S2O_ELb0EELb0EEENS2I_IS32_Lb1EEENS2I_ISJ_IS2S_SL_S1F_IS2S_S2T_ELb0EELb0EEENS2I_IS36_Lb1EEEEEEJEEESt16integer_sequenceImJLm0EEEE14__visit_invokeESG_S3A_ in /usr/local/service/doris/lib/be/doris_be 10# doris::pipeline::StreamingAggLocalState::_pre_agg_with_serialized_key(doris::vectorized::Block*, doris::vectorized::Block*) in /usr/local/service/doris/lib/be/doris_be 11# doris::pipeline::StreamingAggLocalState::do_pre_agg(doris::vectorized::Block*, doris::vectorized::Block*) in /usr/local/service/doris/lib/be/doris_be 12# doris::pipeline::StreamingAggOperatorX::push(doris::RuntimeState*, doris::vectorized::Block*, bool) const in /usr/local/service/doris/lib/be/doris_be 13# doris::pipeline::StatefulOperatorX<doris::pipeline::StreamingAggLocalState>::get_block(doris::RuntimeState*, doris::vectorized::Block*, bool*) in /usr/local/service/doris/lib/be/doris_be 14# doris::pipeline::OperatorXBase::get_block_after_projects(doris::RuntimeState*, doris::vectorized::Block*, bool*) in /usr/local/service/doris/lib/be/doris_be 15# doris::pipeline::PipelineXTask::execute(bool*) in /usr/local/service/doris/lib/be/doris_be 16# doris::pipeline::TaskScheduler::_do_work(unsigned long) in /usr/local/service/doris/lib/be/doris_be 17# doris::ThreadPool::dispatch_thread() in /usr/local/service/doris/lib/be/doris_be 18# doris::Thread::supervise_thread(void*) in /usr/local/service/doris/lib/be/doris_be 19# start_thread in /lib64/libpthread.so.0 20# __clone in /lib64/libc.so.6 ```
… handling type mismatch in streaming_agg_serialize_to_column apache#50001
…pe mismatch in streaming_agg_serialize_to_column (apache#50001) ### What problem does this PR solve? Problem Summary: core ``` *** is nereids: 1 *** *** tablet id: 0 *** *** Aborted at 1744342233 (unix time) try "date -d @1744342233" if you are using GNU date *** *** Current BE git commitID: 2503281 *** *** SIGSEGV unknown detail explain (@0x0) received by PID 681431 (TID 683727 OR 0x7fcd153a0700) from PID 0; stack trace: *** 0# doris::signal::(anonymous namespace)::FailureSignalHandler(int, siginfo_t*, void*) in /usr/local/service/doris/lib/be/doris_be 1# os::Linux::chained_handler(int, siginfo*, void*) in /usr/local/jdk/jre/lib/amd64/server/libjvm.so 2# JVM_handle_linux_signal in /usr/local/jdk/jre/lib/amd64/server/libjvm.so 3# signalHandler(int, siginfo*, void*) in /usr/local/jdk/jre/lib/amd64/server/libjvm.so 4# 0x00007FD26771E400 in /lib64/libc.so.6 5# doris::vectorized::ColumnArray::insert_from(doris::vectorized::IColumn const&, unsigned long) in /usr/local/service/doris/lib/be/doris_be 6# doris::vectorized::ColumnNullable::insert_from(doris::vectorized::IColumn const&, unsigned long) in /usr/local/service/doris/lib/be/doris_be 7# doris::vectorized::AggregateFunctionCollect<doris::vectorized::AggregateFunctionArrayAggData<void>, std::integral_constant<bool, false>, std::integral_constant<bool, true> >::streaming_agg_serialize_to_column(doris::vectorized::IColumn const**, COW<doris::vectorized::IColumn>::mutable_ptr<doris::vectorized::IColumn>&, unsigned long, doris::vectorized::Arena*) const in /usr/local/service/doris/lib/be/doris_be 8# doris::vectorized::AggFnEvaluator::streaming_agg_serialize_to_column(doris::vectorized::Block*, COW<doris::vectorized::IColumn>::mutable_ptr<doris::vectorized::IColumn>&, unsigned long, doris::vectorized::Arena*) in /usr/local/service/doris/lib/be/doris_be 9# _ZNSt8__detail9__variant17__gen_vtable_implINS0_12_Multi_arrayIPFNS0_21__deduce_visit_resultIN5doris6StatusEEEONS4_10vectorized8OverloadIJZNS4_8pipeline22StreamingAggLocalState28_pre_agg_with_serialized_keyEPNS7_5BlockESC_E3$_0ZNSA_28_pre_agg_with_serialized_keyESC_SC_E3$_1EEERSt7variantIJNS7_16MethodSerializedI9PHHashMapINS4_9StringRefEPc11DefaultHashISK_vELb0EEEENS7_15MethodOneNumberIhSJ_IhSL_SM_IhvELb0EEEENSQ_ItSJ_ItSL_SM_ItvELb0EEEENSQ_IjSJ_IjSL_9HashCRC32IjELb0EEEENSQ_ImSJ_ImSL_SX_ImELb0EEEENS7_19MethodStringNoCacheINS4_13StringHashMapISL_9AllocatorILb1ELb1ELb0E22DefaultMemoryAllocatorEEEEENSQ_INS7_7UInt128ESJ_IS1B_SL_SX_IS1B_ELb0EEEENSQ_IjSJ_IjSL_14HashMixWrapperIjSY_ELb0EEEENSQ_ImSJ_ImSL_S1F_ImS11_ELb0EEEENSQ_IS1B_SJ_IS1B_SL_S1F_IS1B_S1C_ELb0EEEENS7_26MethodSingleNullableColumnINSQ_IhNS7_15DataWithNullKeyISS_EEEEEENS1P_INSQ_ItNS1Q_ISV_EEEEEENS1P_INSQ_IjNS1Q_ISZ_EEEEEENS1P_INSQ_ImNS1Q_IS12_EEEEEENS1P_INSQ_IjNS1Q_IS1H_EEEEEENS1P_INSQ_ImNS1Q_IS1K_EEEEEENS1P_INSQ_IS1B_NS1Q_IS1D_EEEEEENS1P_INSQ_IS1B_NS1Q_IS1N_EEEEEENS1P_INS14_INS1Q_IS19_EEEEEENS7_15MethodKeysFixedIS12_Lb0EEENS2I_IS12_Lb1EEENS2I_IS1D_Lb0EEENS2I_IS1D_Lb1EEENS2I_ISJ_INS7_7UInt256ESL_SX_IS2N_ELb0EELb0EEENS2I_IS2P_Lb1EEENS2I_ISJ_INS7_7UInt136ESL_SX_IS2S_ELb0EELb0EEENS2I_IS2U_Lb1EEENS2I_IS1K_Lb0EEENS2I_IS1K_Lb1EEENS2I_IS1N_Lb0EEENS2I_IS1N_Lb1EEENS2I_ISJ_IS2N_SL_S1F_IS2N_S2O_ELb0EELb0EEENS2I_IS32_Lb1EEENS2I_ISJ_IS2S_SL_S1F_IS2S_S2T_ELb0EELb0EEENS2I_IS36_Lb1EEEEEEJEEESt16integer_sequenceImJLm0EEEE14__visit_invokeESG_S3A_ in /usr/local/service/doris/lib/be/doris_be 10# doris::pipeline::StreamingAggLocalState::_pre_agg_with_serialized_key(doris::vectorized::Block*, doris::vectorized::Block*) in /usr/local/service/doris/lib/be/doris_be 11# doris::pipeline::StreamingAggLocalState::do_pre_agg(doris::vectorized::Block*, doris::vectorized::Block*) in /usr/local/service/doris/lib/be/doris_be 12# doris::pipeline::StreamingAggOperatorX::push(doris::RuntimeState*, doris::vectorized::Block*, bool) const in /usr/local/service/doris/lib/be/doris_be 13# doris::pipeline::StatefulOperatorX<doris::pipeline::StreamingAggLocalState>::get_block(doris::RuntimeState*, doris::vectorized::Block*, bool*) in /usr/local/service/doris/lib/be/doris_be 14# doris::pipeline::OperatorXBase::get_block_after_projects(doris::RuntimeState*, doris::vectorized::Block*, bool*) in /usr/local/service/doris/lib/be/doris_be 15# doris::pipeline::PipelineXTask::execute(bool*) in /usr/local/service/doris/lib/be/doris_be 16# doris::pipeline::TaskScheduler::_do_work(unsigned long) in /usr/local/service/doris/lib/be/doris_be 17# doris::ThreadPool::dispatch_thread() in /usr/local/service/doris/lib/be/doris_be 18# doris::Thread::supervise_thread(void*) in /usr/local/service/doris/lib/be/doris_be 19# start_thread in /lib64/libpthread.so.0 20# __clone in /lib64/libc.so.6 ```
…pe mismatch in streaming_agg_serialize_to_column (apache#50001) ### What problem does this PR solve? Problem Summary: core ``` *** is nereids: 1 *** *** tablet id: 0 *** *** Aborted at 1744342233 (unix time) try "date -d @1744342233" if you are using GNU date *** *** Current BE git commitID: 2503281 *** *** SIGSEGV unknown detail explain (@0x0) received by PID 681431 (TID 683727 OR 0x7fcd153a0700) from PID 0; stack trace: *** 0# doris::signal::(anonymous namespace)::FailureSignalHandler(int, siginfo_t*, void*) in /usr/local/service/doris/lib/be/doris_be 1# os::Linux::chained_handler(int, siginfo*, void*) in /usr/local/jdk/jre/lib/amd64/server/libjvm.so 2# JVM_handle_linux_signal in /usr/local/jdk/jre/lib/amd64/server/libjvm.so 3# signalHandler(int, siginfo*, void*) in /usr/local/jdk/jre/lib/amd64/server/libjvm.so 4# 0x00007FD26771E400 in /lib64/libc.so.6 5# doris::vectorized::ColumnArray::insert_from(doris::vectorized::IColumn const&, unsigned long) in /usr/local/service/doris/lib/be/doris_be 6# doris::vectorized::ColumnNullable::insert_from(doris::vectorized::IColumn const&, unsigned long) in /usr/local/service/doris/lib/be/doris_be 7# doris::vectorized::AggregateFunctionCollect<doris::vectorized::AggregateFunctionArrayAggData<void>, std::integral_constant<bool, false>, std::integral_constant<bool, true> >::streaming_agg_serialize_to_column(doris::vectorized::IColumn const**, COW<doris::vectorized::IColumn>::mutable_ptr<doris::vectorized::IColumn>&, unsigned long, doris::vectorized::Arena*) const in /usr/local/service/doris/lib/be/doris_be 8# doris::vectorized::AggFnEvaluator::streaming_agg_serialize_to_column(doris::vectorized::Block*, COW<doris::vectorized::IColumn>::mutable_ptr<doris::vectorized::IColumn>&, unsigned long, doris::vectorized::Arena*) in /usr/local/service/doris/lib/be/doris_be 9# _ZNSt8__detail9__variant17__gen_vtable_implINS0_12_Multi_arrayIPFNS0_21__deduce_visit_resultIN5doris6StatusEEEONS4_10vectorized8OverloadIJZNS4_8pipeline22StreamingAggLocalState28_pre_agg_with_serialized_keyEPNS7_5BlockESC_E3$_0ZNSA_28_pre_agg_with_serialized_keyESC_SC_E3$_1EEERSt7variantIJNS7_16MethodSerializedI9PHHashMapINS4_9StringRefEPc11DefaultHashISK_vELb0EEEENS7_15MethodOneNumberIhSJ_IhSL_SM_IhvELb0EEEENSQ_ItSJ_ItSL_SM_ItvELb0EEEENSQ_IjSJ_IjSL_9HashCRC32IjELb0EEEENSQ_ImSJ_ImSL_SX_ImELb0EEEENS7_19MethodStringNoCacheINS4_13StringHashMapISL_9AllocatorILb1ELb1ELb0E22DefaultMemoryAllocatorEEEEENSQ_INS7_7UInt128ESJ_IS1B_SL_SX_IS1B_ELb0EEEENSQ_IjSJ_IjSL_14HashMixWrapperIjSY_ELb0EEEENSQ_ImSJ_ImSL_S1F_ImS11_ELb0EEEENSQ_IS1B_SJ_IS1B_SL_S1F_IS1B_S1C_ELb0EEEENS7_26MethodSingleNullableColumnINSQ_IhNS7_15DataWithNullKeyISS_EEEEEENS1P_INSQ_ItNS1Q_ISV_EEEEEENS1P_INSQ_IjNS1Q_ISZ_EEEEEENS1P_INSQ_ImNS1Q_IS12_EEEEEENS1P_INSQ_IjNS1Q_IS1H_EEEEEENS1P_INSQ_ImNS1Q_IS1K_EEEEEENS1P_INSQ_IS1B_NS1Q_IS1D_EEEEEENS1P_INSQ_IS1B_NS1Q_IS1N_EEEEEENS1P_INS14_INS1Q_IS19_EEEEEENS7_15MethodKeysFixedIS12_Lb0EEENS2I_IS12_Lb1EEENS2I_IS1D_Lb0EEENS2I_IS1D_Lb1EEENS2I_ISJ_INS7_7UInt256ESL_SX_IS2N_ELb0EELb0EEENS2I_IS2P_Lb1EEENS2I_ISJ_INS7_7UInt136ESL_SX_IS2S_ELb0EELb0EEENS2I_IS2U_Lb1EEENS2I_IS1K_Lb0EEENS2I_IS1K_Lb1EEENS2I_IS1N_Lb0EEENS2I_IS1N_Lb1EEENS2I_ISJ_IS2N_SL_S1F_IS2N_S2O_ELb0EELb0EEENS2I_IS32_Lb1EEENS2I_ISJ_IS2S_SL_S1F_IS2S_S2T_ELb0EELb0EEENS2I_IS36_Lb1EEEEEEJEEESt16integer_sequenceImJLm0EEEE14__visit_invokeESG_S3A_ in /usr/local/service/doris/lib/be/doris_be 10# doris::pipeline::StreamingAggLocalState::_pre_agg_with_serialized_key(doris::vectorized::Block*, doris::vectorized::Block*) in /usr/local/service/doris/lib/be/doris_be 11# doris::pipeline::StreamingAggLocalState::do_pre_agg(doris::vectorized::Block*, doris::vectorized::Block*) in /usr/local/service/doris/lib/be/doris_be 12# doris::pipeline::StreamingAggOperatorX::push(doris::RuntimeState*, doris::vectorized::Block*, bool) const in /usr/local/service/doris/lib/be/doris_be 13# doris::pipeline::StatefulOperatorX<doris::pipeline::StreamingAggLocalState>::get_block(doris::RuntimeState*, doris::vectorized::Block*, bool*) in /usr/local/service/doris/lib/be/doris_be 14# doris::pipeline::OperatorXBase::get_block_after_projects(doris::RuntimeState*, doris::vectorized::Block*, bool*) in /usr/local/service/doris/lib/be/doris_be 15# doris::pipeline::PipelineXTask::execute(bool*) in /usr/local/service/doris/lib/be/doris_be 16# doris::pipeline::TaskScheduler::_do_work(unsigned long) in /usr/local/service/doris/lib/be/doris_be 17# doris::ThreadPool::dispatch_thread() in /usr/local/service/doris/lib/be/doris_be 18# doris::Thread::supervise_thread(void*) in /usr/local/service/doris/lib/be/doris_be 19# start_thread in /lib64/libpthread.so.0 20# __clone in /lib64/libc.so.6 ```
What problem does this PR solve?
Problem Summary:
core
Release note
None
Check List (For Author)
Test
Behavior changed:
Does this need documentation?
Check List (For Reviewer who merge this PR)