Details
-
Sub-task
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
None
-
None
-
None
Description
Here is the failing test QueryIT#testIsNotNull. With PhoenixTableScanColumnRefRule rule there is infinite loop to finalize best plan.
java.lang.OutOfMemoryError: GC overhead limit exceeded at java.lang.AbstractStringBuilder.<init>(AbstractStringBuilder.java:68) at java.lang.StringBuffer.<init>(StringBuffer.java:116) at java.io.StringWriter.<init>(StringWriter.java:50) at org.apache.calcite.rel.AbstractRelNode.computeDigest(AbstractRelNode.java:397) at org.apache.calcite.rel.AbstractRelNode.recomputeDigest(AbstractRelNode.java:358) at org.apache.calcite.plan.hep.HepPlanner.updateVertex(HepPlanner.java:839) at org.apache.calcite.plan.hep.HepPlanner.addRelToGraph(HepPlanner.java:780) at org.apache.calcite.plan.hep.HepPlanner.applyTransformationResults(HepPlanner.java:691) at org.apache.calcite.plan.hep.HepPlanner.applyRule(HepPlanner.java:509) at org.apache.calcite.plan.hep.HepPlanner.applyRules(HepPlanner.java:384) at org.apache.calcite.plan.hep.HepPlanner.executeInstruction(HepPlanner.java:251) at org.apache.calcite.plan.hep.HepInstruction$RuleInstance.execute(HepInstruction.java:125) at org.apache.calcite.plan.hep.HepPlanner.executeProgram(HepPlanner.java:210) at org.apache.calcite.plan.hep.HepPlanner.findBestExp(HepPlanner.java:197) at org.apache.calcite.tools.Programs$2.run(Programs.java:213) at org.apache.calcite.tools.Programs$SequenceProgram.run(Programs.java:387) at org.apache.calcite.tools.Programs$SequenceProgram.run(Programs.java:387) at org.apache.phoenix.calcite.PhoenixPrograms$1.planFor(PhoenixPrograms.java:200) at org.apache.phoenix.calcite.PhoenixPrograms$1.run(PhoenixPrograms.java:180) at org.apache.calcite.tools.Programs$SequenceProgram.run(Programs.java:387) at org.apache.calcite.prepare.Prepare.optimize(Prepare.java:158) at org.apache.calcite.prepare.Prepare.prepareSql(Prepare.java:291) at org.apache.calcite.prepare.Prepare.prepareSql(Prepare.java:200) at org.apache.calcite.prepare.CalcitePrepareImpl.prepare2_(CalcitePrepareImpl.java:761) at org.apache.calcite.prepare.CalcitePrepareImpl.prepare_(CalcitePrepareImpl.java:617) at org.apache.calcite.prepare.CalcitePrepareImpl.prepareSql(CalcitePrepareImpl.java:587) at org.apache.phoenix.calcite.PhoenixPrepareImpl.prepareSql(PhoenixPrepareImpl.java:208) at org.apache.calcite.jdbc.CalciteConnectionImpl.parseQuery(CalciteConnectionImpl.java:214) at org.apache.calcite.jdbc.CalciteConnectionImpl.prepareStatement_(CalciteConnectionImpl.java:195) at org.apache.calcite.jdbc.CalciteConnectionImpl.prepareStatement(CalciteConnectionImpl.java:185) at org.apache.calcite.jdbc.PhoenixCalciteFactory$PhoenixCalciteConnection.prepareStatement(PhoenixCalciteFactory.java:161) at org.apache.calcite.jdbc.PhoenixCalciteFactory$PhoenixCalciteConnection.prepareStatement(PhoenixCalciteFactory.java:1)