You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@doris.apache.org by GitBox <gi...@apache.org> on 2022/12/21 12:50:17 UTC

[GitHub] [doris] ByteYue opened a new issue, #15256: [Bug] unsupported agg fn init would cause coredump

ByteYue opened a new issue, #15256:
URL: https://github.com/apache/doris/issues/15256

   ### Search before asking
   
   - [X] I had searched in the [issues](https://github.com/apache/doris/issues?q=is%3Aissue) and found no similar issues.
   
   
   ### Version
   
   master
   
   ### What's Wrong?
   
   ```
   select
      /*+ SET_VAR(query_timeout = 600) */ ref_0.`PS_SUPPKEY` as c0,
     ref_0.`PS_SUPPLYCOST` as c1,
   
       last_value(
         cast(bitmap_empty() as BITMAP)) over (partition by ref_0.`PS_AVAILQTY` order by ref_0.`PS_PARTKEY` desc ) as c2,
     case when false then ref_0.`PS_COMMENT` else ref_0.`PS_COMMENT` end
        as c3
   from
     regression_test_datev2_tpch_sf1_p1_tpch_sf1.partsupp as ref_0
   where ref_0.`PS_PARTKEY` is NULL order by ref_0.`PS_COMMENT`
   ```
   
   This stmt would cause be coredump because currently BE doesn't support last_value(BITMAP).
   
   ### What You Expected?
   
   Return Not Supported instead of be crash.
   
   ### How to Reproduce?
   
   Type the stmt mentioned in `What's wrong`.
   
   ### Anything Else?
   
   The be.out is as follows:
   ```
   0# doris::signal::(anonymous namespace)::FailureSignalHandler(int, siginfo_t*, void*) at /mnt/disk1/yuejing/projects/doris/be/src/common/signal_handler.h:420
    1# 0x00007F12912EB400 in /lib64/libc.so.6
    2# __GI_raise in /lib64/libc.so.6
    3# __GI_abort in /lib64/libc.so.6
    4# 0x0000557FABB31EF9 in /mnt/disk1/yuejing/projects/doris/output/be/lib/doris_be
    5# google::LogMessage::SendToLog() in /mnt/disk1/yuejing/projects/doris/output/be/lib/doris_be
    6# google::LogMessage::Flush() in /mnt/disk1/yuejing/projects/doris/output/be/lib/doris_be
    7# google::LogMessageFatal::~LogMessageFatal() in /mnt/disk1/yuejing/projects/doris/output/be/lib/doris_be
    8# doris::vectorized::IAggregateFunction* doris::vectorized::create_function_lead_lag_first_last<doris::vectorized::WindowFunctionData, doris::vectorized::FirstLastData, dor
   is::vectorized::WindowFunctionLastImpl, false, false>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<std::shared_ptr<dori
   s::vectorized::IDataType const>, std::allocator<std::shared_ptr<doris::vectorized::IDataType const> > > const&, doris::vectorized::Array const&) in /mnt/disk1/yuejing/project
   s/doris/output/be/lib/doris_be
    9# auto doris::vectorized::create_aggregate_function_window_last(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<std::sha
   red_ptr<doris::vectorized::IDataType const>, std::allocator<std::shared_ptr<doris::vectorized::IDataType const> > > const&, doris::vectorized::Array const&, bool)::$_3::opera
   tor()<std::integral_constant<bool, false>, std::integral_constant<bool, false> >(std::integral_constant<bool, false>, std::integral_constant<bool, false>) const at /mnt/disk1
   /yuejing/projects/doris/be/src/vec/aggregate_functions/aggregate_function_window.cpp:116
   10# void std::__invoke_impl<void, doris::vectorized::create_aggregate_function_window_last(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > con
   st&, std::vector<std::shared_ptr<doris::vectorized::IDataType const>, std::allocator<std::shared_ptr<doris::vectorized::IDataType const> > > const&, doris::vectorized::Array 
   const&, bool)::$_3, std::integral_constant<bool, false>, std::integral_constant<bool, false> >(std::__invoke_other, doris::vectorized::create_aggregate_function_window_last(s
   td::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<std::shared_ptr<doris::vectorized::IDataType const>, std::allocator<std::sh
   ared_ptr<doris::vectorized::IDataType const> > > const&, doris::vectorized::Array const&, bool)::$_3&&, std::integral_constant<bool, false>&&, std::integral_constant<bool, fa
   lse>&&) at /mnt/disk1/yuejing/projects/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/invoke.h:61
   11# std::__invoke_result<doris::vectorized::create_aggregate_function_window_last(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std:
   :vector<std::shared_ptr<doris::vectorized::IDataType const>, std::allocator<std::shared_ptr<doris::vectorized::IDataType const> > > const&, doris::vectorized::Array const&, b
   ool)::$_3, std::integral_constant<bool, false>, std::integral_constant<bool, false> >::type std::__invoke<doris::vectorized::create_aggregate_function_window_last(std::__cxx1
   1::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<std::shared_ptr<doris::vectorized::IDataType const>, std::allocator<std::shared_ptr<d
   oris::vectorized::IDataType const> > > const&, doris::vectorized::Array const&, bool)::$_3, std::integral_constant<bool, false>, std::integral_constant<bool, false> >(doris::
   vectorized::create_aggregate_function_window_last(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<std::shared_ptr<doris::v
   ectorized::IDataType const>, std::allocator<std::shared_ptr<doris::vectorized::IDataType const> > > const&, doris::vectorized::Array const&, bool)::$_3&&, std::integral_const
   ant<bool, false>&&, std::integral_constant<bool, false>&&) at /mnt/disk1/yuejing/projects/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/inv
   oke.h:96
   12# std::__detail::__variant::__gen_vtable_impl<std::__detail::__variant::_Multi_array<std::__detail::__variant::__deduce_visit_result<void> (*)(doris::vectorized::create_agg
   regate_function_window_last(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<std::shared_ptr<doris::vectorized::IDataType c
   onst>, std::allocator<std::shared_ptr<doris::vectorized::IDataType const> > > const&, doris::vectorized::Array const&, bool)::$_3&&, std::variant<std::integral_constant<bool,
    false>, std::integral_constant<bool, true> >&&, std::variant<std::integral_constant<bool, false>, std::integral_constant<bool, true> >&&)>, std::integer_sequence<unsigned lo
   ng, 0ul, 0ul> >::__visit_invoke(doris::vectorized::create_aggregate_function_window_last(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const
   &, std::vector<std::shared_ptr<doris::vectorized::IDataType const>, std::allocator<std::shared_ptr<doris::vectorized::IDataType const> > > const&, doris::vectorized::Array co
   nst&, bool)::$_3&&, std::variant<std::integral_constant<bool, false>, std::integral_constant<bool, true> >&&, std::variant<std::integral_constant<bool, false>, std::integral_
   constant<bool, true> >&&) at /mnt/disk1/yuejing/projects/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/variant:1013
   13# decltype(auto) std::__do_visit<std::__detail::__variant::__deduce_visit_result<void>, doris::vectorized::create_aggregate_function_window_last(std::__cxx11::basic_string<
   char, std::char_traits<char>, std::allocator<char> > const&, std::vector<std::shared_ptr<doris::vectorized::IDataType const>, std::allocator<std::shared_ptr<doris::vectorized
   ::IDataType const> > > const&, doris::vectorized::Array const&, bool)::$_3, std::variant<std::integral_constant<bool, false>, std::integral_constant<bool, true> >, std::varia
   nt<std::integral_constant<bool, false>, std::integral_constant<bool, true> > >(doris::vectorized::create_aggregate_function_window_last(std::__cxx11::basic_string<char, std::
   char_traits<char>, std::allocator<char> > const&, std::vector<std::shared_ptr<doris::vectorized::IDataType const>, std::allocator<std::shared_ptr<doris::vectorized::IDataType
    const> > > const&, doris::vectorized::Array const&, bool)::$_3&&, std::variant<std::integral_constant<bool, false>, std::integral_constant<bool, true> >&&, std::variant<std:
   :integral_constant<bool, false>, std::integral_constant<bool, true> >&&) at /mnt/disk1/yuejing/projects/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c
   ++/11/variant:1716
   14# decltype(auto) std::visit<doris::vectorized::create_aggregate_function_window_last(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<std::shared_ptr<doris::vectorized::IDataType const>, std::allocator<std::shared_ptr<doris::vectorized::IDataType const> > > const&, doris::vectorized::Array const&, bool)::$_3, std::variant<std::integral_constant<bool, false>, std::integral_constant<bool, true> >, std::variant<std::integral_constant<bool, false>, std::integral_constant<bool, true> > >(doris::vectorized::create_aggregate_function_window_last(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<std::shared_ptr<doris::vectorized::IDataType const>, std::allocator<std::shared_ptr<doris::vectorized::IDataType const> > > const&, doris::vectorized::Array const&, bool)::$_3&&, std::variant<std::integral_constant<bool, false>, std::integral_constant<bool, true> >&&, std::variant<std::integral_c
 onstant<bool, false>, std::integral_constant<bool, true> >&&) at /mnt/disk1/yuejing/projects/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/variant:1769
   15# doris::vectorized::create_aggregate_function_window_last(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<std::shared_ptr<doris::vectorized::IDataType const>, std::allocator<std::shared_ptr<doris::vectorized::IDataType const> > > const&, doris::vectorized::Array const&, bool) at /mnt/disk1/yuejing/projects/doris/be/src/vec/aggregate_functions/aggregate_function_window.cpp:116
   16# std::shared_ptr<doris::vectorized::IAggregateFunction> std::__invoke_impl<std::shared_ptr<doris::vectorized::IAggregateFunction>, std::shared_ptr<doris::vectorized::IAggregateFunction> (*&)(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<std::shared_ptr<doris::vectorized::IDataType const>, std::allocator<std::shared_ptr<doris::vectorized::IDataType const> > > const&, doris::vectorized::Array const&, bool), std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<std::shared_ptr<doris::vectorized::IDataType const>, std::allocator<std::shared_ptr<doris::vectorized::IDataType const> > > const&, doris::vectorized::Array const&, bool>(std::__invoke_other, std::shared_ptr<doris::vectorized::IAggregateFunction> (*&)(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<std::shared_ptr<doris::vectorized::IDataType const>, std::allocator<std::shar
 ed_ptr<doris::vectorized::IDataType const> > > const&, doris::vectorized::Array const&, bool), std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<std::shared_ptr<doris::vectorized::IDataType const>, std::allocator<std::shared_ptr<doris::vectorized::IDataType const> > > const&, doris::vectorized::Array const&, bool&&) at /mnt/disk1/yuejing/projects/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/invoke.h:61
   17# std::enable_if<is_invocable_r_v<std::shared_ptr<doris::vectorized::IAggregateFunction>, std::shared_ptr<doris::vectorized::IAggregateFunction> (*&)(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<std::shared_ptr<doris::vectorized::IDataType const>, std::allocator<std::shared_ptr<doris::vectorized::IDataType const> > > const&, doris::vectorized::Array const&, bool), std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<std::shared_ptr<doris::vectorized::IDataType const>, std::allocator<std::shared_ptr<doris::vectorized::IDataType const> > > const&, doris::vectorized::Array const&, bool>, std::shared_ptr<doris::vectorized::IAggregateFunction> >::type std::__invoke_r<std::shared_ptr<doris::vectorized::IAggregateFunction>, std::shared_ptr<doris::vectorized::IAggregateFunction> (*&)(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<std:
 :shared_ptr<doris::vectorized::IDataType const>, std::allocator<std::shared_ptr<doris::vectorized::IDataType const> > > const&, doris::vectorized::Array const&, bool), std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<std::shared_ptr<doris::vectorized::IDataType const>, std::allocator<std::shared_ptr<doris::vectorized::IDataType const> > > const&, doris::vectorized::Array const&, bool>(std::shared_ptr<doris::vectorized::IAggregateFunction> (*&)(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<std::shared_ptr<doris::vectorized::IDataType const>, std::allocator<std::shared_ptr<doris::vectorized::IDataType const> > > const&, doris::vectorized::Array const&, bool), std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<std::shared_ptr<doris::vectorized::IDataType const>, std::allocator<std::shared_ptr<doris::vectorized::IDataType const> > > co
 nst&, doris::vectorized::Array const&, bool&&) at /mnt/disk1/yuejing/projects/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/invoke.h:114
   18# std::_Function_handler<std::shared_ptr<doris::vectorized::IAggregateFunction> (std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<std::shared_ptr<doris::vectorized::IDataType const>, std::allocator<std::shared_ptr<doris::vectorized::IDataType const> > > const&, doris::vectorized::Array const&, bool), std::shared_ptr<doris::vectorized::IAggregateFunction> (*)(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<std::shared_ptr<doris::vectorized::IDataType const>, std::allocator<std::shared_ptr<doris::vectorized::IDataType const> > > const&, doris::vectorized::Array const&, bool)>::_M_invoke(std::_Any_data const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<std::shared_ptr<doris::vectorized::IDataType const>, std::allocator<std::shared_ptr<doris::vectorized::IDataType const> > > const&, doris::vectorized::Array const&, bool&&) at
  /mnt/disk1/yuejing/projects/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/std_function.h:291
   19# std::function<std::shared_ptr<doris::vectorized::IAggregateFunction> (std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<std::shared_ptr<doris::vectorized::IDataType const>, std::allocator<std::shared_ptr<doris::vectorized::IDataType const> > > const&, doris::vectorized::Array const&, bool)>::operator()(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<std::shared_ptr<doris::vectorized::IDataType const>, std::allocator<std::shared_ptr<doris::vectorized::IDataType const> > > const&, doris::vectorized::Array const&, bool) const at /mnt/disk1/yuejing/projects/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/std_function.h:560
   20# doris::vectorized::AggregateFunctionSimpleFactory::get(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<std::shared_ptr<doris::vectorized::IDataType const>, std::allocator<std::shared_ptr<doris::vectorized::IDataType const> > > const&, doris::vectorized::Array const&, bool) at /mnt/disk1/yuejing/projects/doris/be/src/vec/aggregate_functions/aggregate_function_simple_factory.h:97
   21# doris::vectorized::AggFnEvaluator::prepare(doris::RuntimeState*, doris::RowDescriptor const&, doris::SlotDescriptor const*, doris::SlotDescriptor const*) at /mnt/disk1/yuejing/projects/doris/be/src/vec/exprs/vectorized_agg_fn.cpp:127
   22# doris::vectorized::VAnalyticEvalNode::prepare(doris::RuntimeState*) at /mnt/disk1/yuejing/projects/doris/be/src/vec/exec/vanalytic_eval_node.cpp:159
   23# doris::ExecNode::prepare(doris::RuntimeState*) at /mnt/disk1/yuejing/projects/doris/be/src/exec/exec_node.cpp:243
   24# doris::vectorized::VSortNode::prepare(doris::RuntimeState*) at /mnt/disk1/yuejing/projects/doris/be/src/vec/exec/vsort_node.cpp:69
   25# doris::PlanFragmentExecutor::prepare(doris::TExecPlanFragmentParams const&, doris::QueryFragmentsCtx*) at /mnt/disk1/yuejing/projects/doris/be/src/runtime/plan_fragment_executor.cpp:158
   26# doris::FragmentExecState::prepare(doris::TExecPlanFragmentParams const&) in /mnt/disk1/yuejing/projects/doris/output/be/lib/doris_be
   27# doris::FragmentMgr::exec_plan_fragment(doris::TExecPlanFragmentParams const&, std::function<void (doris::RuntimeState*, doris::Status*)>) at /mnt/disk1/yuejing/projects/doris/be/src/runtime/fragment_mgr.cpp:709
   28# doris::FragmentMgr::exec_plan_fragment(doris::TExecPlanFragmentParams const&) at /mnt/disk1/yuejing/projects/doris/be/src/runtime/fragment_mgr.cpp:544
   29# doris::PInternalServiceImpl::_exec_plan_fragment(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, doris::PFragmentRequestVersion, bool) at /mnt/disk1/yuejing/projects/doris/be/src/service/internal_service.cpp:372
   30# doris::PInternalServiceImpl::exec_plan_fragment(google::protobuf::RpcController*, doris::PExecPlanFragmentRequest const*, doris::PExecPlanFragmentResult*, google::protobuf::Closure*) at /mnt/disk1/yuejing/projects/doris/be/src/service/internal_service.cpp:195
   31# doris::PInternalServiceImpl::exec_plan_fragment_prepare(google::protobuf::RpcController*, doris::PExecPlanFragmentRequest const*, doris::PExecPlanFragmentResult*, google:
   :protobuf::Closure*) at /mnt/disk1/yuejing/projects/doris/be/src/service/internal_service.cpp:207
   32# doris::PBackendService::CallMethod(google::protobuf::MethodDescriptor const*, google::protobuf::RpcController*, google::protobuf::Message const*, google::protobuf::Messag
   e*, google::protobuf::Closure*) at /mnt/disk1/yuejing/projects/doris/gensrc/build/gen_cpp/internal_service.pb.cc:24432
   33# brpc::policy::ProcessHttpRequest(brpc::InputMessageBase*) in /mnt/disk1/yuejing/projects/doris/output/be/lib/doris_be
   34# brpc::InputMessenger::OnNewMessages(brpc::Socket*) in /mnt/disk1/yuejing/projects/doris/output/be/lib/doris_be
   35# brpc::Socket::ProcessEvent(void*) in /mnt/disk1/yuejing/projects/doris/output/be/lib/doris_be
   36# bthread::TaskGroup::task_runner(long) in /mnt/disk1/yuejing/projects/doris/output/be/lib/doris_be
   37# bthread_make_fcontext in /mnt/disk1/yuejing/projects/doris/output/be/lib/doris_be
   ```
   
   ### Are you willing to submit PR?
   
   - [X] Yes I am willing to submit a PR!
   
   ### Code of Conduct
   
   - [X] I agree to follow this project's [Code of Conduct](https://www.apache.org/foundation/policies/conduct)
   


-- 
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-unsubscribe@doris.apache.org.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


[GitHub] [doris] yiguolei closed issue #15256: [Bug] unsupported agg fn init would cause coredump

Posted by GitBox <gi...@apache.org>.
yiguolei closed issue #15256: [Bug] unsupported agg fn init would cause coredump
URL: https://github.com/apache/doris/issues/15256


-- 
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-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org