You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@impala.apache.org by "Adriano (Jira)" <ji...@apache.org> on 2020/12/15 08:00:22 UTC

[jira] [Created] (IMPALA-10396) DECIMAL_V2=false: exception during analysis after expr substitution

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)