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)