Uploaded image for project: 'IMPALA'
  1. IMPALA
  2. IMPALA-1562

AnalyticEvalNode not properly handling nullable tuples

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: Impala 2.0
    • Fix Version/s: Impala 2.2
    • Component/s: None
    • Labels:

      Description

      This only affects analytic expressions that do not have a partition by clause or order by clause, e.g. "fn() over ()". If there is a partition by or order by clause, the input comes from a sort node which does not produce nullable tuples.

      QUERY:

      SELECT
      MIN(-307) OVER () AS int_col
      FROM alltypesagg t1
      LEFT JOIN alltypes t2 ON (t2.string_col) = (t1.string_col)
      

      STACK:

      raise () from /lib64/libc.so.6
      raise () from /lib64/libc.so.6
      abort () from /lib64/libc.so.6
      os::abort(bool) () from /opt/toolchain/sun-jdk-64bit-1.6.0.31/jre/lib/amd64/server/libjvm.so
      VMError::report_and_die() () from /opt/toolchain/sun-jdk-64bit-1.6.0.31/jre/lib/amd64/server/libjvm.so
      crash_handler(int, siginfo*, void*) () from /opt/toolchain/sun-jdk-64bit-1.6.0.31/jre/lib/amd64/server/libjvm.so
      call_chained_handler(sigaction*, int, siginfo*, void*) () from /opt/toolchain/sun-jdk-64bit-1.6.0.31/jre/lib/amd64/server/libjvm.so
      os::Linux::chained_handler(int, siginfo*, void*) () from /opt/toolchain/sun-jdk-64bit-1.6.0.31/jre/lib/amd64/server/libjvm.so
      JVM_handle_linux_signal () from /opt/toolchain/sun-jdk-64bit-1.6.0.31/jre/lib/amd64/server/libjvm.so
      signalHandler(int, siginfo*, void*) () from /opt/toolchain/sun-jdk-64bit-1.6.0.31/jre/lib/amd64/server/libjvm.so
      <signal handler called>
      ctime ()
      os::print_date_and_time(outputStream*) () from /opt/toolchain/sun-jdk-64bit-1.6.0.31/jre/lib/amd64/server/libjvm.so
      VMError::report(outputStream*) () from /opt/toolchain/sun-jdk-64bit-1.6.0.31/jre/lib/amd64/server/libjvm.so
      VMError::report_and_die() () from /opt/toolchain/sun-jdk-64bit-1.6.0.31/jre/lib/amd64/server/libjvm.so
      JVM_handle_linux_signal () from /opt/toolchain/sun-jdk-64bit-1.6.0.31/jre/lib/amd64/server/libjvm.so
      signalHandler(int, siginfo*, void*) () from /opt/toolchain/sun-jdk-64bit-1.6.0.31/jre/lib/amd64/server/libjvm.so
      <signal handler called>
      strlen ()
      ?? () from /lib64/libgcc_s.so.1
      ?? () from /lib64/libgcc_s.so.1
      dl_iterate_phdr () from /lib64/libc.so.6
      _Unwind_Find_FDE () from /lib64/libgcc_s.so.1
      ?? () from /lib64/libgcc_s.so.1
      ?? () from /lib64/libgcc_s.so.1
      _Unwind_Backtrace () from /lib64/libgcc_s.so.1
      __sanitizer::StackTrace::SlowUnwindStack(unsigned long, unsigned long) ()
      __asan::AsanCheckFailed(char const*, int, char const*, unsigned long long, unsigned long long) ()
      __sanitizer::CheckFailed(char const*, int, char const*, unsigned long long, unsigned long long) ()
      __sanitizer::UnmapOrDie(void*, unsigned long) ()
      __asan::AsanDie() ()
      __sanitizer::Die() ()
      __asan::ScopedInErrorReport::~ScopedInErrorReport() ()
      __asan::ScopedInErrorReport::~ScopedInErrorReport() ()
      __asan_report_error ()
      __asan_report_load8 ()
      impala::TupleRow::GetTuple (this=<value optimized out>, tuple_idx=<value optimized out>) at /data/9/query-gen/Impala/be/src/runtime/tuple-row.h:31
      impala::AnalyticEvalNode::ProcessChildBatch (this=0x61800005d080, state=0x741e427e8) at /data/9/query-gen/Impala/be/src/exec/analytic-eval-node.cc:548
      impala::AnalyticEvalNode::ProcessChildBatches (this=0x61800005d080, state=0x61c000010880) at /data/9/query-gen/Impala/be/src/exec/analytic-eval-node.cc:517
      impala::AnalyticEvalNode::Open (this=0x61800005d080, state=0x61c000010880) at /data/9/query-gen/Impala/be/src/exec/analytic-eval-node.cc:220
      impala::PlanFragmentExecutor::OpenInternal (this=0x61500036e780) at /data/9/query-gen/Impala/be/src/runtime/plan-fragment-executor.cc:332
      impala::PlanFragmentExecutor::Open (this=0x61500036e780) at /data/9/query-gen/Impala/be/src/runtime/plan-fragment-executor.cc:318
      impala::Coordinator::Wait (this=0x61b00008ff80) at /data/9/query-gen/Impala/be/src/runtime/coordinator.cc:766
      impala::ImpalaServer::QueryExecState::WaitInternal (this=0x624000040100) at /data/9/query-gen/Impala/be/src/service/query-exec-state.cc:551
      impala::ImpalaServer::QueryExecState::Wait (this=0x624000040100) at /data/9/query-gen/Impala/be/src/service/query-exec-state.cc:527
      boost::_bi::bind_t<void, boost::_mfi::mf0<void, impala::ImpalaServer::QueryExecState>, boost::_bi::list1<boost::_bi::value<impala::ImpalaServer::QueryExecState*> > >::operator() (this=0x7fff8000) at /usr/include/boost/bind/bind_template.hpp:20
      boost::function0<void>::operator() (this=<value optimized out>) at /usr/include/boost/function/function_template.hpp:1012
      impala::Thread::SuperviseThread (name=<value optimized out>, category="P\226\211\f6\000\000\000\220\254\211\f6\000\000\000\230\377\377\377\377\377\377\377\230\377\377\377\377\377\377\377\300Ů\f6\000\000\000@\226\211\f6\000\000\000\200\254\211\f6", '\000' <repeats 11 times>"\370, \300\256\f6\000\000\000\330\301\256\f6\000\000\000X®\f6\000\000", functor=..., thread_started=0x7f57ce397d80) at /data/9/query-gen/Impala/be/src/util/thread.cc:311
      boost::_bi::list4<boost::_bi::value<std::basic_string<char> >, boost::_bi::value<std::basic_string<char> >, boost::_bi::value<boost::function<void ()> >, boost::_bi::value<impala::Promise<long> *> >::operator()<void (*)(const std::basic_string<char> &, const std::basic_string<char> &, boost::function<void ()>, impala::Promise<long> *), boost::_bi::list0>(void (*&)(const std::basic_string<char> &, const std::basic_string<char> &, boost::function<void ()>, impala::Promise<long> *), boost::_bi::list0 &, int, boost::_bi::type<void>) (this=<value optimized out>, f=<value optimized out>, a=<value optimized out>) at /usr/include/boost/bind/bind.hpp:457
      boost::_bi::bind_t<void, void (*)(const std::basic_string<char> &, const std::basic_string<char> &, boost::function<void ()>, impala::Promise<long> *), boost::_bi::list4<boost::_bi::value<std::basic_string<char> >, boost::_bi::value<std::basic_string<char> >, boost::_bi::value<boost::function<void ()> >, boost::_bi::value<impala::Promise<long> *> > >::operator()(void) (this=0x7fff8000) at /usr/include/boost/bind/bind_template.hpp:20
      thread_proxy ()
      __asan::AsanThread::ThreadStart(unsigned long) ()
      start_thread () from /lib64/libpthread.so.0
      clone () from /lib64/libc.so.6
      

      DB: Functional
      File Format: Text/None
      Build: ASAN
      git Hash: 36496df

        Attachments

          Activity

            People

            • Assignee:
              mjacobs Matthew Jacobs
              Reporter:
              tarasbob Taras Bobrovytsky
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: