[ https://issues.apache.org/jira/browse/IMPALA-6639?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Alexander Behm resolved IMPALA-6639. ------------------------------------ Resolution: Duplicate > Crash with 'ORDER BY' in 'OVER' clause with 'RANDOM' > ---------------------------------------------------- > > Key: IMPALA-6639 > URL: https://issues.apache.org/jira/browse/IMPALA-6639 > Project: IMPALA > Issue Type: Bug > Components: Frontend > Affects Versions: Impala 3.0, Impala 2.12.0 > Reporter: Balazs Jeszenszky > Priority: Blocker > Labels: crash > > The following query crashes Impala reliably: > {code:java} > select AVG(n) OVER(ORDER By n) from ( > select RANDOM() as n from (select 1 union all select 1) a) b; > {code} > Stack trace: > {code:java} > #0 0x00007f98565315e5 in raise () from /lib64/libc.so.6 > #1 0x00007f9856532dc5 in abort () from /lib64/libc.so.6 > #2 0x00007f9858697a55 in os::abort(bool) () from > /usr/java/jdk1.7.0_67-cloudera/jre/lib/amd64/server/libjvm.so > #3 0x00007f9858817f87 in VMError::report_and_die() () > from /usr/java/jdk1.7.0_67-cloudera/jre/lib/amd64/server/libjvm.so > #4 0x00007f985869c96f in JVM_handle_linux_signal () > from /usr/java/jdk1.7.0_67-cloudera/jre/lib/amd64/server/libjvm.so > #5 <signal handler called> > #6 0x0000000002c9ed73 in impala::Sorter::Run::Run (this=0x94612a0, > parent=0xa396080, sort_tuple_desc=0x8d9a750, > initial_run=true) at > /usr/src/debug/impala-2.11.0-cdh5.14.0/be/src/runtime/sorter.cc:624 > #7 0x0000000002ca5c00 in impala::Sorter::Open (this=0xa396080) > at /usr/src/debug/impala-2.11.0-cdh5.14.0/be/src/runtime/sorter.cc:1551 > #8 0x0000000002901a09 in impala::SortNode::Open (this=0x945de00, > state=0x9d92180) > at /usr/src/debug/impala-2.11.0-cdh5.14.0/be/src/exec/sort-node.cc:82 > #9 0x0000000002919bcb in impala::AnalyticEvalNode::Open (this=0x6dbb100, > state=0x9d92180) > at > /usr/src/debug/impala-2.11.0-cdh5.14.0/be/src/exec/analytic-eval-node.cc:187 > #10 0x0000000001893d03 in impala::FragmentInstanceState::Open (this=0xae64760) > at > /usr/src/debug/impala-2.11.0-cdh5.14.0/be/src/runtime/fragment-instance-state.cc:255 > #11 0x00000000018917fd in impala::FragmentInstanceState::Exec (this=0xae64760) > at > /usr/src/debug/impala-2.11.0-cdh5.14.0/be/src/runtime/fragment-instance-state.cc:80 > #12 0x000000000187a7ac in impala::QueryState::ExecFInstance (this=0x8fd0d00, > fis=0xae64760) > at > /usr/src/debug/impala-2.11.0-cdh5.14.0/be/src/runtime/query-state.cc:382 > #13 0x000000000187906e in impala::QueryState::<lambda()>::operator()(void) > const (__closure=0x7f97ffd88bc8) > at > /usr/src/debug/impala-2.11.0-cdh5.14.0/be/src/runtime/query-state.cc:325 > #14 0x000000000187b3eb in > boost::detail::function::void_function_obj_invoker0<impala::QueryState::StartFInstances()::<lambda()>, > void>::invoke(boost::detail::function::function_buffer &) > (function_obj_ptr=...) > at > /usr/src/debug/impala-2.11.0-cdh5.14.0/toolchain/boost-1.57.0-p3/include/boost/function/function_template.hpp:153 > #15 0x00000000017c88de in boost::function0<void>::operator() > (this=0x7f97ffd88bc0) > at > /usr/src/debug/impala-2.11.0-cdh5.14.0/toolchain/boost-1.57.0-p3/include/boost/function/function_template.hpp:767 > #16 0x0000000001abe113 in impala::Thread::SuperviseThread (name=..., > category=..., functor=..., > thread_started=0x7f9800788ab0) at > /usr/src/debug/impala-2.11.0-cdh5.14.0/be/src/util/thread.cc:352 > #17 0x0000000001ac6c9e in > boost::_bi::list4<boost::_bi::value<std::basic_string<char, > std::char_traits<char>, std::allocator<char> > >, > boost::_bi::value<std::basic_string<char, std::char_traits<char>, > std::allocator<char> > >, boost::_bi::value<boost::function<void()> >, > boost::_bi::value<impala::Promise<long int>*> >::operator()<void (*)(const > std::basic_string<char>&, const std::basic_string<char>&, > boost::function<void()>, impala::Promise<long int>*), > boost::_bi::list0>(boost::_bi::type<void>, void (*&)(const > std::basic_string<char, std::char_traits<char>, std::allocator<char> > &, > const std::basic_string<char, std::char_traits<char>, std::allocator<char> > > &, boost::function<void()>, impala::Promise<long> *), boost::_bi::list0 &, > int) (this=0xa3901c0, f=@0xa3901b8, a=...) > {code} > sort_tuple_size_ ends up as zero in this division: > https://github.com/cloudera/Impala/blob/cdh5-2.11.0_5.14.0/be/src/runtime/sorter.cc#L624 > Looks like the tuple descriptor is malformed: > {code:java} > (gdb) p *(impala::TupleDescriptor *) sort_tuple_desc > $4 = {static LLVM_CLASS_NAME = 0x3d649c4 "class.impala::TupleDescriptor", id_ > = 8, table_desc_ = 0x0, > byte_size_ = 0, num_null_bytes_ = 0, null_bytes_offset_ = 0, > slots_ = {<std::_Vector_base<impala::SlotDescriptor*, > std::allocator<impala::SlotDescriptor*> >> = { > _M_impl = {<std::allocator<impala::SlotDescriptor*>> = > {<__gnu_cxx::new_allocator<impala::SlotDescriptor*>> = {<No data fields>}, > <No data fields>}, _M_start = 0x0, _M_finish = 0x0, _M_end_of_storage = > 0x0}}, <No data fields>}, > string_slots_ = {<std::_Vector_base<impala::SlotDescriptor*, > std::allocator<impala::SlotDescriptor*> >> = { > _M_impl = {<std::allocator<impala::SlotDescriptor*>> = > {<__gnu_cxx::new_allocator<impala::SlotDescriptor*>> = {<No data fields>}, > <No data fields>}, _M_start = 0x0, _M_finish = 0x0, _M_end_of_storage = > 0x0}}, <No data fields>}, > collection_slots_ = {<std::_Vector_base<impala::SlotDescriptor*, > std::allocator<impala::SlotDescriptor*> >> = { > _M_impl = {<std::allocator<impala::SlotDescriptor*>> = > {<__gnu_cxx::new_allocator<impala::SlotDescriptor*>> = {<No data fields>}, > <No data fields>}, _M_start = 0x0, _M_finish = 0x0, _M_end_of_storage = > 0x0}}, <No data fields>}, > has_varlen_slots_ = false, tuple_path_ = {<std::_Vector_base<int, > std::allocator<int> >> = { > _M_impl = {<std::allocator<int>> = {<__gnu_cxx::new_allocator<int>> = > {<No data fields>}, <No data fields>}, > _M_start = 0x0, _M_finish = 0x0, _M_end_of_storage = 0x0}}, <No data > fields>}} > {code} > Seems to only happen with the RANDOM() function combined with the ORDER BY > clause within the OVER clause. Having a single row within the innermost > select will run successfully (but having a select * from a table will crash). -- This message was sent by Atlassian JIRA (v7.6.3#76005)