[ 
https://issues.apache.org/jira/browse/CALCITE-1047?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Julian Hyde updated CALCITE-1047:
---------------------------------
    Summary: ChunkList.clear throws AssertionError  (was: Assertion error in 
ChunkList using VolcanoPlanner in impatient mode )

> ChunkList.clear throws AssertionError
> -------------------------------------
>
>                 Key: CALCITE-1047
>                 URL: https://issues.apache.org/jira/browse/CALCITE-1047
>             Project: Calcite
>          Issue Type: Bug
>          Components: core
>            Reporter: Jesus Camacho Rodriguez
>            Assignee: Julian Hyde
>
> We are trying to enable VolcanoPlanner in Hive for some specific cases. Doing 
> experiments, I tried to set up the {{impatient}} option to _true_. Then I am 
> hitting an assertion error in ChunkList with the following stack trace:
> {noformat}
> select cbo_t3.c_int, c, count(*) from (select key as a, c_int+1 as b, 
> sum(c_int) as c from cbo_t1 where (cbo_t1.c_int + 1 >= 0) and (cbo_t1.c_int > 
> 0 or cbo_t1.c_float >= 0) group by c_float, cbo_t1.c_int, key order by a) 
> cbo_t1 join (select key as p, c_int+1 as q, sum(c_int) as r from cbo_t2 where 
> (cbo_t2.c_int + 1 >= 0) and (cbo_t2.c_int > 0 or cbo_t2.c_float >= 0)  group 
> by c_float, cbo_t2.c_int, key order by q/10 desc, r asc) cbo_t2 on cbo_t1.a=p 
> join cbo_t3 on cbo_t1.a=key where (b + cbo_t2.q >= 0) and (b > 0 or c_int >= 
> 0) group by cbo_t3.c_int, c order by cbo_t3.c_int+c desc, c
> See ./ql/target/tmp/log/hive.log or ./itests/qtest/target/tmp/log/hive.log, 
> or check ./ql/target/surefire-reports or 
> ./itests/qtest/target/surefire-reports/ for specific test cases logs.
>   TestCliDriver.testCliDriver_correlationoptimizer8:108->runTest:134 
> Unexpected exception java.lang.AssertionError
>       at 
> org.apache.calcite.util.ChunkList$ChunkListIterator.next(ChunkList.java:217)
>       at java.util.AbstractList.removeRange(AbstractList.java:570)
>       at java.util.AbstractList.clear(AbstractList.java:234)
>       at 
> org.apache.calcite.plan.volcano.RuleQueue$PhaseMatchList.clear(RuleQueue.java:714)
>       at 
> org.apache.calcite.plan.volcano.RuleQueue.phaseCompleted(RuleQueue.java:155)
>       at 
> org.apache.calcite.plan.volcano.VolcanoPlanner.findBestExp(VolcanoPlanner.java:833)
>       at 
> org.apache.hadoop.hive.ql.parse.CalcitePlanner$CalcitePlannerAction.volcanoPlan(CalcitePlanner.java:1244)
>       at 
> org.apache.hadoop.hive.ql.parse.CalcitePlanner$CalcitePlannerAction.applyPreJoinOrderingTransforms(CalcitePlanner.java:1090)
>       at 
> org.apache.hadoop.hive.ql.parse.CalcitePlanner$CalcitePlannerAction.apply(CalcitePlanner.java:887)
>       at 
> org.apache.hadoop.hive.ql.parse.CalcitePlanner$CalcitePlannerAction.apply(CalcitePlanner.java:830)
>       at org.apache.calcite.tools.Frameworks$1.apply(Frameworks.java:112)
>       at 
> org.apache.calcite.prepare.CalcitePrepareImpl.perform(CalcitePrepareImpl.java:971)
>       at org.apache.calcite.tools.Frameworks.withPrepare(Frameworks.java:148)
>       at org.apache.calcite.tools.Frameworks.withPlanner(Frameworks.java:105)
>       at 
> org.apache.hadoop.hive.ql.parse.CalcitePlanner.getOptimizedAST(CalcitePlanner.java:653)
>       at 
> org.apache.hadoop.hive.ql.parse.CalcitePlanner.genOPTree(CalcitePlanner.java:270)
>       at 
> org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.analyzeInternal(SemanticAnalyzer.java:10094)
>       at 
> org.apache.hadoop.hive.ql.parse.CalcitePlanner.analyzeInternal(CalcitePlanner.java:229)
>       at 
> org.apache.hadoop.hive.ql.parse.BaseSemanticAnalyzer.analyze(BaseSemanticAnalyzer.java:237)
>       at 
> org.apache.hadoop.hive.ql.parse.ExplainSemanticAnalyzer.analyzeInternal(ExplainSemanticAnalyzer.java:74)
>       at 
> org.apache.hadoop.hive.ql.parse.BaseSemanticAnalyzer.analyze(BaseSemanticAnalyzer.java:237)
>       at org.apache.hadoop.hive.ql.Driver.compile(Driver.java:471)
>       at org.apache.hadoop.hive.ql.Driver.compile(Driver.java:311)
>       at org.apache.hadoop.hive.ql.Driver.compileInternal(Driver.java:1149)
>       at org.apache.hadoop.hive.ql.Driver.runInternal(Driver.java:1237)
>       at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1075)
>       at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1063)
>       at 
> org.apache.hadoop.hive.cli.CliDriver.processLocalCmd(CliDriver.java:233)
>       at org.apache.hadoop.hive.cli.CliDriver.processCmd(CliDriver.java:184)
>       at org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:400)
>       at org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:336)
>       at 
> org.apache.hadoop.hive.ql.QTestUtil.executeClientInternal(QTestUtil.java:1127)
>       at 
> org.apache.hadoop.hive.ql.QTestUtil.executeClient(QTestUtil.java:1101)
>       at 
> org.apache.hadoop.hive.cli.TestCliDriver.runTest(TestCliDriver.java:124)
>       at 
> org.apache.hadoop.hive.cli.TestCliDriver.testCliDriver_correlationoptimizer8(TestCliDriver.java:108)
>       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> {noformat}
> It seems the problem originates when we call the {{clean}} method in the 
> ChunkList.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to