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

stress test caused crash in HdfsParquetScanner::Close()

    XMLWordPrintableJSON

Details

    Description

      A stress test at commit IMPALA-5154: Handle 'unpartitioned' Kudu tables caused a crash. Here is the backtrace:

      #0  0x000000323f632625 in raise (sig=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
      #1  0x000000323f633e05 in abort () at abort.c:92
      #2  0x00007fe3aa44ca55 in os::abort(bool) () from /usr/java/jdk1.7.0_67-cloudera/jre/lib/amd64/server/libjvm.so
      #3  0x00007fe3aa5ccf87 in VMError::report_and_die() () from /usr/java/jdk1.7.0_67-cloudera/jre/lib/amd64/server/libjvm.so
      #4  0x00007fe3aa45196f in JVM_handle_linux_signal () from /usr/java/jdk1.7.0_67-cloudera/jre/lib/amd64/server/libjvm.so
      #5  <signal handler called>
      #6  0x0000000001723845 in impala::HdfsParquetScanner::Close (this=0x7fdc12b96680, row_batch=0x0)
          at /usr/src/debug/impala-2.8.0-cdh5.12.0-SNAPSHOT/be/src/exec/hdfs-parquet-scanner.cc:280
      #7  0x00000000016f8ceb in impala::HdfsScanNodeMt::Close (this=0x7fe0b8c1f600, state=0x7fe0c724f100)
          at /usr/src/debug/impala-2.8.0-cdh5.12.0-SNAPSHOT/be/src/exec/hdfs-scan-node-mt.cc:123
      #8  0x00000000016a981a in impala::ExecNode::Close (this=0x1149a83c0, state=0x7fe0c724f100) at /usr/src/debug/impala-2.8.0-cdh5.12.0-SNAPSHOT/be/src/exec/exec-node.cc:198
      #9  0x00000000017a5233 in impala::PartitionedAggregationNode::Close (this=0x1149a83c0, state=0x7fe0c724f100)
          at /usr/src/debug/impala-2.8.0-cdh5.12.0-SNAPSHOT/be/src/exec/partitioned-aggregation-node.cc:726
      #10 0x0000000001a752e9 in impala::PlanFragmentExecutor::Close (this=0x7fe235a95ad0)
          at /usr/src/debug/impala-2.8.0-cdh5.12.0-SNAPSHOT/be/src/runtime/plan-fragment-executor.cc:501
      #11 0x0000000001a6cdb5 in impala::FragmentInstanceState::Exec (this=0x7fe235a95800)
          at /usr/src/debug/impala-2.8.0-cdh5.12.0-SNAPSHOT/be/src/runtime/fragment-instance-state.cc:71
      #12 0x0000000001a783e9 in impala::QueryExecMgr::ExecFInstance (this=0xe138100, fis=0x7fe235a95800)
          at /usr/src/debug/impala-2.8.0-cdh5.12.0-SNAPSHOT/be/src/runtime/query-exec-mgr.cc:110
      #13 0x0000000001a7b212 in boost::_mfi::mf1<void, impala::QueryExecMgr, impala::FragmentInstanceState*>::operator() (this=0x7fddb52eefa0, p=0xe138100, a1=0x7fe235a95800)
          at /usr/src/debug/impala-2.8.0-cdh5.12.0-SNAPSHOT/toolchain/boost-1.57.0-p1/include/boost/bind/mem_fn_template.hpp:165
      #14 0x0000000001a7b09b in boost::_bi::list2<boost::_bi::value<impala::QueryExecMgr*>, boost::_bi::value<impala::FragmentInstanceState*> >::operator()<boost::_mfi::mf1<void, impala::QueryExecMgr, impala::FragmentInstanceState*>, boost::_bi::list0> (this=0x7fddb52eefb0, f=..., a=...)
          at /usr/src/debug/impala-2.8.0-cdh5.12.0-SNAPSHOT/toolchain/boost-1.57.0-p1/include/boost/bind/bind.hpp:313
      #15 0x0000000001a7abcf in boost::_bi::bind_t<void, boost::_mfi::mf1<void, impala::QueryExecMgr, impala::FragmentInstanceState*>, boost::_bi::list2<boost::_bi::value<impala::QueryExecMgr*>, boost::_bi::value<impala::FragmentInstanceState*> > >::operator() (this=0x7fddb52eefa0)
          at /usr/src/debug/impala-2.8.0-cdh5.12.0-SNAPSHOT/toolchain/boost-1.57.0-p1/include/boost/bind/bind_template.hpp:20
      #16 0x0000000001a7a7da in boost::detail::function::void_function_obj_invoker0<boost::_bi::bind_t<void, boost::_mfi::mf1<void, impala::QueryExecMgr, impala::FragmentInstanceState*>, boost::_bi::list2<boost::_bi::value<impala::QueryExecMgr*>, boost::_bi::value<impala::FragmentInstanceState*> > >, void>::invoke (function_obj_ptr=...)
          at /usr/src/debug/impala-2.8.0-cdh5.12.0-SNAPSHOT/toolchain/boost-1.57.0-p1/include/boost/function/function_template.hpp:153
      #17 0x000000000137bd66 in boost::function0<void>::operator() (this=0x7fe13b699c40)
          at /usr/src/debug/impala-2.8.0-cdh5.12.0-SNAPSHOT/toolchain/boost-1.57.0-p1/include/boost/function/function_template.hpp:767
      #18 0x000000000162e35d in impala::Thread::SuperviseThread (name=..., category=..., functor=..., thread_started=0x7fd9fa94e9a0)
          at /usr/src/debug/impala-2.8.0-cdh5.12.0-SNAPSHOT/be/src/util/thread.cc:325
      #19 0x0000000001636d38 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=0x1d6f83dc0, f=@0x1d6f83db8, a=...)
          at /usr/src/debug/impala-2.8.0-cdh5.12.0-SNAPSHOT/toolchain/boost-1.57.0-p1/include/boost/bind/bind.hpp:457
      #20 0x0000000001636c7b in boost::_bi::bind_t<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 int>*), 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) (this=0x1d6f83db8)
          at /usr/src/debug/impala-2.8.0-cdh5.12.0-SNAPSHOT/toolchain/boost-1.57.0-p1/include/boost/bind/bind_template.hpp:20
      #21 0x0000000001636c3e in boost::detail::thread_data<boost::_bi::bind_t<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 int>*), 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>*> > > >::run(void) (this=0x1d6f83c00)
          at /usr/src/debug/impala-2.8.0-cdh5.12.0-SNAPSHOT/toolchain/boost-1.57.0-p1/include/boost/thread/detail/thread.hpp:116
      #22 0x0000000001af270a in thread_proxy ()
      #23 0x000000323fa079d1 in start_thread (arg=0x7fe13b69a700) at pthread_create.c:301
      #24 0x000000323f6e88fd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115
      

      L280 looks like this:

       269 void HdfsParquetScanner::Close(RowBatch* row_batch) {
      ...
       280     for (ParquetColumnReader* col_reader : column_readers_) col_reader->Close(nullptr);
      

      Workaround

      • SET MT_DOP=0 before running COMPUTE STATS or SET MT_DOP=0 gobally
      • Refrain from setting MT_DOP!=0 manually for any query

      Attachments

        Issue Links

          Activity

            People

              alex.behm Alexander Behm
              mikeb Michael Brown
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: