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

KuduScanNode crash when pushing predicates including a cast

    XMLWordPrintableJSON

Details

    Description

      After loading a few more functional tables for Kudu, a simple agg on alltypes crashed.

      [localhost:21000] > use functional_kudu;
      Query: use functional_kudu
      [localhost:21000] > select count(*) from alltypes where year = 2009.0;
      Error communicating with impalad: TSocket read 0 bytes
      
      F0712 14:23:59.508661  5016 kudu-scan-node.cc:204] Check failed: predicate.nodes.size() == 3 (4 vs. 3) 
      *** Check failure stack trace: ***
          @     0x7fb405dec19d  google::LogMessage::Fail()
          @     0x7fb405deeac6  google::LogMessage::SendToLog()
          @     0x7fb405debcbd  google::LogMessage::Flush()
          @     0x7fb405def56e  google::LogMessageFatal::~LogMessageFatal()
          @     0x7fb40a13b832  impala::KuduScanNode::TransformPushableConjunctsToRangePredicates()
          @     0x7fb40a13ad6f  impala::KuduScanNode::Open()
          @     0x7fb40a0eb7a7  impala::PartitionedAggregationNode::Open()
          @     0x7fb4081c3ec8  impala::PlanFragmentExecutor::OpenInternal()
          @     0x7fb4081c3bff  impala::PlanFragmentExecutor::Open()
          @     0x7fb407880f6a  impala::FragmentMgr::FragmentExecState::Exec()
          @     0x7fb40788e213  impala::FragmentMgr::FragmentThread()
          @     0x7fb4078a8d64  boost::_mfi::mf1<>::operator()()
          @     0x7fb4078a768d  boost::_bi::list2<>::operator()<>()
          @     0x7fb4078a6103  boost::_bi::bind_t<>::operator()()
          @     0x7fb4078a39a6  boost::detail::function::void_function_obj_invoker0<>::invoke()
          @           0x7d61be  boost::function0<>::operator()()
          @     0x7fb40675c9f9  impala::Thread::SuperviseThread()
          @     0x7fb406764480  boost::_bi::list4<>::operator()<>()
          @     0x7fb4067643c3  boost::_bi::bind_t<>::operator()()
          @     0x7fb40676431e  boost::detail::thread_data<>::run()
          @           0x8acd2a  thread_proxy
          @     0x7fb406270184  start_thread
          @     0x7fb402d7537d  (unknown)
      Picked up JAVA_TOOL_OPTIONS: -agentlib:jdwp=transport=dt_socket,address=30000,server=y,suspend=n 
      Wrote minidump to /home/mj/dev/Impala/logs/cluster/minidumps/impalad/1511eaea-952d-efae-5ea04079-1217af5c.dmp
      

      It looks like year gets cast to a double, but then we fail the DCHECK since the predicate isn't as simple as we expect.

      For now we might need to avoid pushing such predicates down, but this kind of thing could lead to real perf issues.

      Attachments

        Issue Links

          Activity

            People

              mjacobs Matthew Jacobs
              mjacobs Matthew Jacobs
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: