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