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)