You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@impala.apache.org by "Alice Fan (Jira)" <ji...@apache.org> on 2019/10/08 07:32:00 UTC

[jira] [Created] (IMPALA-9023) select statement fails with "ERROR: IllegalStateException: null" after expression rewrite

Alice Fan created IMPALA-9023:
---------------------------------

             Summary: select statement fails with "ERROR: IllegalStateException: null" after expression rewrite
                 Key: IMPALA-9023
                 URL: https://issues.apache.org/jira/browse/IMPALA-9023
             Project: IMPALA
          Issue Type: Bug
          Components: Frontend
    Affects Versions: Impala 3.4.0
            Reporter: Alice Fan


How to repro:
{code:java}

1.
create table t (year int, make string);

2.
insert into t 
values
(2005, 'Toyota'),
(2010, 'Toyota'),
(2005, 'Honda'),
(2010, 'Honda'),
(2005, 'Ford'),
(2010, 'Ford');

3.
select * 
from t
where 
  case when make = 'Toyota' then year < 2008
  end 
and make = 'Toyota';
{code}

It will fail with following errors:

{code:java}
I1007 23:48:37.523810 15479 Frontend.java:1295] 7d47c4acb54a7131:bca9c9ef00000000] Analysis and authorization finished.
I1007 23:48:37.574666 15479 jni-util.cc:288] 7d47c4acb54a7131:bca9c9ef00000000] java.lang.IllegalStateException
        at com.google.common.base.Preconditions.checkState(Preconditions.java:133)
        at org.apache.impala.analysis.SlotRef.isBoundBySlotIds(SlotRef.java:222)
        at org.apache.impala.analysis.Expr.isBoundBySlotIds(Expr.java:1256)
        at org.apache.impala.analysis.Expr.isBoundBySlotIds(Expr.java:1256)
        at org.apache.impala.planner.HdfsPartitionPruner.prunePartitions(HdfsPartitionPruner.java:124)
        at org.apache.impala.planner.SingleNodePlanner.createHdfsScanPlan(SingleNodePlanner.java:1269)
        at org.apache.impala.planner.SingleNodePlanner.createScanNode(SingleNodePlanner.java:1395)
        at org.apache.impala.planner.SingleNodePlanner.createTableRefNode(SingleNodePlanner.java:1582)
        at org.apache.impala.planner.SingleNodePlanner.createTableRefsPlan(SingleNodePlanner.java:826)
        at org.apache.impala.planner.SingleNodePlanner.createSelectPlan(SingleNodePlanner.java:662)
        at org.apache.impala.planner.SingleNodePlanner.createQueryPlan(SingleNodePlanner.java:261)
        at org.apache.impala.planner.SingleNodePlanner.createSingleNodePlan(SingleNodePlanner.java:151)
        at org.apache.impala.planner.Planner.createPlan(Planner.java:117)
        at org.apache.impala.service.Frontend.createExecRequest(Frontend.java:1180)
        at org.apache.impala.service.Frontend.getPlannedExecRequest(Frontend.java:1506)
        at org.apache.impala.service.Frontend.doCreateExecRequest(Frontend.java:1370)
        at org.apache.impala.service.Frontend.getTExecRequest(Frontend.java:1261)
        at org.apache.impala.service.Frontend.createExecRequest(Frontend.java:1231)
        at org.apache.impala.service.JniFrontend.createExecRequest(JniFrontend.java:154)
I1007 23:48:37.717686 15479 status.cc:124] 7d47c4acb54a7131:bca9c9ef00000000] IllegalStateException: null
    @          0x1b90190  impala::Status::Status()
    @          0x238b21c  impala::JniUtil::GetJniExceptionMsg()
    @          0x21b18b5  impala::JniCall::Call<>()
    @          0x21ae9f3  impala::JniUtil::CallJniMethod<>()
    @          0x21acc96  impala::Frontend::GetExecRequest()
    @          0x21d9fe0  impala::ImpalaServer::ExecuteInternal()
    @          0x21d9a0e  impala::ImpalaServer::Execute()
    @          0x226698a  impala::ImpalaServer::query()
    @          0x27ce3fd  beeswax::BeeswaxServiceProcessor::process_query()
    @          0x27ce14b  beeswax::BeeswaxServiceProcessor::dispatchCall()
    @          0x279bb78  impala::ImpalaServiceProcessor::dispatchCall()
    @          0x1b3f553  apache::thrift::TDispatchProcessor::process()
    @          0x1f9ee57  apache::thrift::server::TAcceptQueueServer::Task::run()
    @          0x1f9459c  impala::ThriftThread::RunRunnable()
    @          0x1f95cc2  boost::_mfi::mf2<>::operator()()
    @          0x1f95b58  boost::_bi::list3<>::operator()<>()
    @          0x1f958a4  boost::_bi::bind_t<>::operator()()
    @          0x1f957b7  boost::detail::function::void_function_obj_invoker0<>::invoke()
    @          0x1eb271f  boost::function0<>::operator()()
    @          0x2405a34  impala::Thread::SuperviseThread()
    @          0x240ddb8  boost::_bi::list5<>::operator()<>()
    @          0x240dcdc  boost::_bi::bind_t<>::operator()()
    @          0x240dc9f  boost::detail::thread_data<>::run()
    @          0x3bea089  thread_proxy
    @     0x7fea2747f6b9  start_thread
    @     0x7fea23c5e41c  clone
{code}

Workarounds:
1. Disabling expression rewrites (SET ENABLE_EXPR_REWRITES=0), which can fix the issue.
2. Rewrite query with the same logic:
{code}
select * from t where make = 'Toyota' and year < 2008;
{code}






--
This message was sent by Atlassian Jira
(v8.3.4#803005)