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

DescriptorTable.copyTupleDescriptor throw exception for Kudu table

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • None
    • Impala 4.1.0
    • Frontend
    • None

    Description

      This is a customer reported bug. In the case, planner throw exception with following stack trace: 

      I1115 07:52:39.779211 14750 jni-util.cc:286] 4a467bd0ffba8c4b:0ce1e98a00000000] java.lang.IllegalStateException
              at com.google.common.base.Preconditions.checkState(Preconditions.java:492)
              at org.apache.impala.analysis.DescriptorTable.copyTupleDescriptor(DescriptorTable.java:85)
              at org.apache.impala.planner.AnalyticEvalNode.constructEqExprs(AnalyticEvalNode.java:184)
              at org.apache.impala.planner.AnalyticEvalNode.init(AnalyticEvalNode.java:158)
              at org.apache.impala.planner.AnalyticPlanner.createSortGroupPlan(AnalyticPlanner.java:495)
              at org.apache.impala.planner.AnalyticPlanner.createSingleNodePlan(AnalyticPlanner.java:139)
              at org.apache.impala.planner.SingleNodePlanner.createQueryPlan(SingleNodePlanner.java:295)
              at org.apache.impala.planner.SingleNodePlanner.createSingleNodePlan(SingleNodePlanner.java:170)
              at org.apache.impala.planner.Planner.createPlanFragments(Planner.java:120)
              at org.apache.impala.planner.Planner.createPlans(Planner.java:249)
              at org.apache.impala.service.Frontend.createExecRequest(Frontend.java:1562)
              at org.apache.impala.service.Frontend.getPlannedExecRequest(Frontend.java:1939)
              at org.apache.impala.service.Frontend.doCreateExecRequest(Frontend.java:1779)
              at org.apache.impala.service.Frontend.getTExecRequest(Frontend.java:1644)
              at org.apache.impala.service.Frontend.createExecRequest(Frontend.java:1614)
              at org.apache.impala.service.JniFrontend.createExecRequest(JniFrontend.java:164)
      I1115 07:52:39.779265 14750 status.cc:129] 4a467bd0ffba8c4b:0ce1e98a00000000] IllegalStateException: null
          @          0x1f94ad9  impala::Status::Status()
          @          0x297e8ed  impala::JniUtil::GetJniExceptionMsg()
          @          0x26b4180  impala::JniCall::Call<>()
          @          0x26b0c07  impala::JniUtil::CallJniMethod<>()
          @          0x26aec22  impala::Frontend::GetExecRequest()
          @          0x30dda65  impala::QueryDriver::RunFrontendPlanner()
          @          0x2713244  impala::ImpalaServer::ExecuteInternal()
          @          0x2712791  impala::ImpalaServer::Execute()
          @          0x285f9f4  impala::ImpalaServer::ExecuteStatementCommon()
          @          0x2860895  impala::ImpalaServer::ExecuteStatement()
          @          0x27727c7  apache::hive::service::cli::thrift::TCLIServiceProcessorT<>::process_ExecuteStatement()
          @          0x27f4161  apache::hive::service::cli::thrift::TCLIServiceProcessorT<>::dispatchCall()
          @          0x27f3d58  impala::ImpalaHiveServer2ServiceProcessorT<>::dispatchCall()
          @          0x1e6ee6f  apache::thrift::TDispatchProcessor::process()
          @          0x2348784  apache::thrift::server::TAcceptQueueServer::Task::run()
          @          0x233bfea  impala::ThriftThread::RunRunnable()
          @          0x233d606  boost::_mfi::mf2<>::operator()()
          @          0x233d49a  boost::_bi::list3<>::operator()<>()
          @          0x233d1f0  boost::_bi::bind_t<>::operator()()
          @          0x233d0b9  boost::detail::function::void_function_obj_invoker0<>::invoke()
          @          0x22ab5cd  boost::function0<>::operator()()
          @          0x2a76d5e  impala::Thread::SuperviseThread()
          @          0x2a7f6ae  boost::_bi::list5<>::operator()<>()
          @          0x2a7f5d2  boost::_bi::bind_t<>::operator()()
          @          0x2a7f593  boost::detail::thread_data<>::run()
          @          0x43763b0  thread_proxy
          @     0x7fd8ae06bea4  start_thread
          @     0x7fd8aa9df9fc  __clone

       

      The bug could be reproduced in Impala upstream with following queries:

      create database mydb;

      CREATE TABLE mydb.my_tab1 (
        id1 INT NOT NULL,
        agrmt INT NOT NULL,
        big_id BIGINT NOT NULL,
        outdated_flag STRING NOT NULL,
        mod_ts TIMESTAMP NOT NULL,
        PRIMARY KEY (id1, agrmt)
      )
      PARTITION BY HASH (id1) PARTITIONS 2
      STORED AS KUDU;

      CREATE TABLE mydb.my_tab2 (
        cl_id INT NOT NULL,
        cl_agrmt INT NOT NULL,
        outdat STRING NULL,
        mod_dat TIMESTAMP NULL,
        PRIMARY KEY (cl_id, cl_agrmt)
      )
      PARTITION BY HASH (cl_id) PARTITIONS 2
      STORED AS KUDU;

      insert into mydb.my_tab1 (
          id1,
          agrmt,
          big_id,
          outdated_flag,
          mod_ts)
      select
          cl_id,
          cast(row_number() over(order by null) as int),
          cl_agrmt,
          'Y',
          case when outdat='Y' and mod_dat is not null then mod_dat else now() end
        from mydb.my_tab2 i
        left join mydb.my_tab1 u
          on u.big_id=i.cl_agrmt
        left join (
          select id1, big_id
            from mydb.my_tab1
           group by id1, big_id) uu
          on uu.big_id=i.cl_agrmt
       where u.big_id is null;

      Attachments

        Activity

          People

            wzhou Wenzhe Zhou
            wzhou Wenzhe Zhou
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: