Adriano created IMPALA-10396:
--------------------------------

             Summary: DECIMAL_V2=false: exception during analysis after expr 
substitution
                 Key: IMPALA-10396
                 URL: https://issues.apache.org/jira/browse/IMPALA-10396
             Project: IMPALA
          Issue Type: Bug
          Components: Frontend
    Affects Versions: Impala 3.4.0, Impala 3.3.0, Impala 3.2.0, Impala 3.1.0, 
Impala 2.12.0, Impala 3.0
            Reporter: Adriano


When DECIMAL_V2 is false in some edge cases the precondition check at 
[https://github.com/apache/impala/blob/aeeff53e884a67ee7f5980654a1d394c6e3e34ac/fe/src/main/java/org/apache/impala/analysis/TypesUtil.java#L89]
 by getArithmeticResultType() when Expr#analyzeImpl() at 
[https://github.com/apache/impala/blob/5530b62539e762ddf5825e2b43db2f29d9addae7/fe/src/main/java/org/apache/impala/analysis/Expr.java#L503]
 can drop an exception while it try to analyze the Expr tree.

Here the stack:
{code:java}
I1201 09:06:18.680207 31885 jni-util.cc:288] 55470855fd2e6aba:c8d32a2800000000] 
java.lang.IllegalStateException: Failed analysis after expr substitution. at 
org.apache.impala.analysis.Expr.substitute(Expr.java:1091) at 
org.apache.impala.analysis.Analyzer.isTrueWithNullSlots(Analyzer.java:2316) at 
org.apache.impala.analysis.TupleIsNullPredicate.requiresNullWrapping(TupleIsNullPredicate.java:175)
 at 
org.apache.impala.analysis.TupleIsNullPredicate.wrapExpr(TupleIsNullPredicate.java:147)
 at 
org.apache.impala.analysis.TupleIsNullPredicate.wrapExprs(TupleIsNullPredicate.java:136)
 at 
org.apache.impala.planner.SingleNodePlanner.createInlineViewPlan(SingleNodePlanner.java:1238)
 at 
org.apache.impala.planner.SingleNodePlanner.createTableRefNode(SingleNodePlanner.java:2078)
 at 
org.apache.impala.planner.SingleNodePlanner.createTableRefsPlan(SingleNodePlanner.java:940)
 at 
org.apache.impala.planner.SingleNodePlanner.createSelectPlan(SingleNodePlanner.java:768)
 at 
org.apache.impala.planner.SingleNodePlanner.createQueryPlan(SingleNodePlanner.java:276)
 at 
org.apache.impala.planner.SingleNodePlanner.createInlineViewPlan(SingleNodePlanner.java:1220)
 at 
org.apache.impala.planner.SingleNodePlanner.createTableRefNode(SingleNodePlanner.java:2078)
 at 
org.apache.impala.planner.SingleNodePlanner.createTableRefsPlan(SingleNodePlanner.java:940)
 at 
org.apache.impala.planner.SingleNodePlanner.createSelectPlan(SingleNodePlanner.java:768)
 at 
org.apache.impala.planner.SingleNodePlanner.createQueryPlan(SingleNodePlanner.java:276)
 at 
org.apache.impala.planner.SingleNodePlanner.createSingleNodePlan(SingleNodePlanner.java:169)
 at org.apache.impala.planner.Planner.createPlanFragments(Planner.java:118) at 
org.apache.impala.planner.Planner.createPlans(Planner.java:245) at 
org.apache.impala.service.Frontend.createExecRequest(Frontend.java:1504) at 
org.apache.impala.service.Frontend.getPlannedExecRequest(Frontend.java:1834) at 
org.apache.impala.service.Frontend.doCreateExecRequest(Frontend.java:1692) at 
org.apache.impala.service.Frontend.getTExecRequest(Frontend.java:1585) at 
org.apache.impala.service.Frontend.createExecRequest(Frontend.java:1555) at 
org.apache.impala.service.JniFrontend.createExecRequest(JniFrontend.java:159) 
Caused by: java.lang.IllegalStateException at 
com.google.common.base.Preconditions.checkState(Preconditions.java:492) at 
org.apache.impala.analysis.TypesUtil.getArithmeticResultType(TypesUtil.java:89) 
at 
org.apache.impala.analysis.ArithmeticExpr.analyzeImpl(ArithmeticExpr.java:202) 
at org.apache.impala.analysis.Expr.analyze(Expr.java:503) at 
org.apache.impala.analysis.Expr.analyze(Expr.java:497) at 
org.apache.impala.analysis.Expr.analyze(Expr.java:497) at 
org.apache.impala.analysis.Expr.analyze(Expr.java:497) at 
org.apache.impala.analysis.Expr.analyze(Expr.java:497) at 
org.apache.impala.analysis.Expr.analyze(Expr.java:497) at 
org.apache.impala.analysis.Expr.analyze(Expr.java:497) at 
org.apache.impala.analysis.Expr.analyze(Expr.java:497) at 
org.apache.impala.analysis.Expr.analyze(Expr.java:497) at 
org.apache.impala.analysis.Expr.analyze(Expr.java:497) at 
org.apache.impala.analysis.Expr.trySubstitute(Expr.java:1072) at 
org.apache.impala.analysis.Expr.substitute(Expr.java:1089)
{code}
This does not happen when DECIMAL_V2 = true.

+WorkAround available:+ SET DECIMAL_V2=true;


Internal investigation tracked with ENGESC-5645



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

Reply via email to