[ 
https://issues.apache.org/jira/browse/IMPALA-9743?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17116032#comment-17116032
 ] 

ASF subversion and git services commented on IMPALA-9743:
---------------------------------------------------------

Commit 2b9c0cc7268994f7fd168897e85525f66ada5c25 in impala's branch 
refs/heads/master from stiga-huang
[ https://gitbox.apache.org/repos/asf?p=impala.git;h=2b9c0cc ]

IMPALA-9743: Fix ExprCardinalityTest may not be marked as in test env

ExprCardinalityTest should be run with RuntimeEnv.INSTANCE.isTestEnv()
being true. Otherwise, it will leave the test catalog in a bad shape and
fail subsequent tests. The key point it depends on this flag is in
HdfsTable.resetPartitions(), where isStoredInImpaladCatalogCache()
returns false if the flag is not set and then partitionValuesMap_ of the
HdfsTable becomes empty. The test catalog is shared across some tests.
Any other tests that depend on this partitionValuesMap will fail with an
IndexOutOfBoundsException.

Maven tests are run in undetermined orders. Many FE tests will set this
flag, i.e. explicitly call RuntimeEnv.INSTANCE.setTestEnv(true). It’s
safe if any of these tests run before ExprCardinalityTest. However, in
some Jenkins jobs, somehow ExprCardinalityTest is run earlier than any
of these tests, which causes the failures.

Tests:
 - Manually run ExprCardinalityTest before an impacted FE test, e.g.
(pushd fe && mvn test -Dtest=ExprCardinalityTest#testMetadata,AnalyzeDDLTest)

Change-Id: I5806dea77eb8e10ccf8ac749b7256603bd79cd97
Reviewed-on: http://gerrit.cloudera.org:8080/15982
Reviewed-by: Impala Public Jenkins <[email protected]>
Tested-by: Impala Public Jenkins <[email protected]>


> IndexOutOfBoundsException in Analyze test when touching partitions of 
> functional.alltypes
> -----------------------------------------------------------------------------------------
>
>                 Key: IMPALA-9743
>                 URL: https://issues.apache.org/jira/browse/IMPALA-9743
>             Project: IMPALA
>          Issue Type: Bug
>    Affects Versions: Impala 4.0
>            Reporter: Gabor Kaszab
>            Assignee: Quanlong Huang
>            Priority: Blocker
>
> One example:
> {code:java}
> org.apache.impala.analysis.AnalyzeDDLTest.TestAlterTableAddDropPartition
> {code}
> {code:java}
> Error Message
> Error during analysis:
> java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
> sql:
> alter table functional.alltypes drop if exists partition(year=2050, month=10)
> {code}
> {code:java}
> Stacktrace
> java.lang.AssertionError: 
> Error during analysis:
> java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
> sql:
> alter table functional.alltypes drop if exists partition(year=2050, month=10)
>       at org.junit.Assert.fail(Assert.java:88)
>       at 
> org.apache.impala.common.FrontendFixture.analyzeStmt(FrontendFixture.java:397)
>       at 
> org.apache.impala.common.FrontendTestBase.AnalyzesOk(FrontendTestBase.java:244)
>       at 
> org.apache.impala.common.FrontendTestBase.AnalyzesOk(FrontendTestBase.java:185)
>       at 
> org.apache.impala.analysis.AnalyzeDDLTest.TestAlterTableAddDropPartition(AnalyzeDDLTest.java:74)
> {code}
> Another example:
> {code:java}
> org.apache.impala.planner.PlannerTest.testPartitionKeyScans
> {code}
> {code:java}
> Query:
> select c1, c2 from
>   (select min(year) c1, max(month) c2, count(int_col) c3
>    from functional.alltypes where year = 2000) t;
> Error Stack:
> java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
>  at java.util.ArrayList.rangeCheck(ArrayList.java:653)
>  at java.util.ArrayList.get(ArrayList.java:429)
>  at 
> org.apache.impala.catalog.HdfsTable.getPartitionValueMap(HdfsTable.java:392)
>  at 
> org.apache.impala.planner.HdfsPartitionPruner.evalBinaryPredicate(HdfsPartitionPruner.java:273)
>  at 
> org.apache.impala.planner.HdfsPartitionPruner.evalSlotBindingFilter(HdfsPartitionPruner.java:440)
>  at 
> org.apache.impala.planner.HdfsPartitionPruner.prunePartitions(HdfsPartitionPruner.java:153)
>  at 
> org.apache.impala.planner.SingleNodePlanner.createHdfsScanPlan(SingleNodePlanner.java:1353)
>  at 
> org.apache.impala.planner.SingleNodePlanner.createScanNode(SingleNodePlanner.java:1479)
>  at 
> org.apache.impala.planner.SingleNodePlanner.createTableRefNode(SingleNodePlanner.java:1667)
>  at 
> org.apache.impala.planner.SingleNodePlanner.createTableRefsPlan(SingleNodePlanner.java:826)
>  at 
> org.apache.impala.planner.SingleNodePlanner.createSelectPlan(SingleNodePlanner.java:650)
>  at 
> org.apache.impala.planner.SingleNodePlanner.createQueryPlan(SingleNodePlanner.java:249)
>  at 
> org.apache.impala.planner.SingleNodePlanner.createInlineViewPlan(SingleNodePlanner.java:1100)
>  at 
> org.apache.impala.planner.SingleNodePlanner.createTableRefNode(SingleNodePlanner.java:1678)
>  at 
> org.apache.impala.planner.SingleNodePlanner.createTableRefsPlan(SingleNodePlanner.java:826)
>  at 
> org.apache.impala.planner.SingleNodePlanner.createSelectPlan(SingleNodePlanner.java:650)
>  at 
> org.apache.impala.planner.SingleNodePlanner.createQueryPlan(SingleNodePlanner.java:249)
>  at 
> org.apache.impala.planner.SingleNodePlanner.createSingleNodePlan(SingleNodePlanner.java:150)
>  at org.apache.impala.planner.Planner.createPlanFragments(Planner.java:118)
>  at org.apache.impala.planner.Planner.createPlans(Planner.java:264)
>  at org.apache.impala.service.Frontend.createExecRequest(Frontend.java:1416)
>  at 
> org.apache.impala.service.Frontend.getPlannedExecRequest(Frontend.java:1742)
>  at org.apache.impala.service.Frontend.doCreateExecRequest(Frontend.java:1603)
>  at org.apache.impala.service.Frontend.getTExecRequest(Frontend.java:1497)
>  at org.apache.impala.service.Frontend.createExecRequest(Frontend.java:1467)
>  at 
> org.apache.impala.planner.PlannerTestBase.testPlan(PlannerTestBase.java:521)
>  at 
> org.apache.impala.planner.PlannerTestBase.runTestCase(PlannerTestBase.java:423)
>  at 
> org.apache.impala.planner.PlannerTestBase.runPlannerTestFile(PlannerTestBase.java:910)
>  at 
> org.apache.impala.planner.PlannerTestBase.runPlannerTestFile(PlannerTestBase.java:846)
>  at 
> org.apache.impala.planner.PlannerTest.testPartitionKeyScans(PlannerTest.java:456)
> {code}



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

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to