kennknowles opened a new issue, #19589:
URL: https://github.com/apache/beam/issues/19589

   If two independent tests will share the same thread, and the first one will 
use one CalciteQueryPlanner, and the second one ZetaSQLPlanner, it's going to 
throw NullPointerException.
   
   The root cause is using RelMetadataQuery.THREAD_PROVIDERS in 
CalciteQueryPlanner
   
   ```
   
   Caused by: java.lang.NullPointerException
        at 
org.apache.beam.sdk.extensions.sql.impl.rel.BeamSqlRelUtils.getNodeStats(BeamSqlRelUtils.java:96)
        at
   
org.apache.beam.sdk.extensions.sql.impl.rel.BeamIOSourceRel.beamComputeSelfCost(BeamIOSourceRel.java:111)
        at
   
org.apache.beam.sdk.extensions.sql.impl.CalciteQueryPlanner$NonCumulativeCostImpl.getNonCumulativeCost(CalciteQueryPlanner.java:217)
        at
   GeneratedMetadataHandler_NonCumulativeCost.getNonCumulativeCost_$(Unknown 
Source)
        at 
GeneratedMetadataHandler_NonCumulativeCost.getNonCumulativeCost(Unknown
   Source)
        at 
org.apache.beam.repackaged.sql.org.apache.calcite.rel.metadata.RelMetadataQuery.getNonCumulativeCost(RelMetadataQuery.java:301)
        at
   
org.apache.beam.repackaged.sql.org.apache.calcite.plan.volcano.VolcanoPlanner.getCost(VolcanoPlanner.java:929)
        at
   
org.apache.beam.repackaged.sql.org.apache.calcite.plan.volcano.RelSubset.propagateCostImprovements0(RelSubset.java:347)
        at
   
org.apache.beam.repackaged.sql.org.apache.calcite.plan.volcano.RelSubset.propagateCostImprovements(RelSubset.java:330)
        at
   
org.apache.beam.repackaged.sql.org.apache.calcite.plan.volcano.VolcanoPlanner.addRelToSet(VolcanoPlanner.java:1816)
        at
   
org.apache.beam.repackaged.sql.org.apache.calcite.plan.volcano.VolcanoPlanner.registerImpl(VolcanoPlanner.java:1752)
        at
   
org.apache.beam.repackaged.sql.org.apache.calcite.plan.volcano.VolcanoPlanner.register(VolcanoPlanner.java:846)
        at
   
org.apache.beam.repackaged.sql.org.apache.calcite.plan.volcano.VolcanoPlanner.ensureRegistered(VolcanoPlanner.java:868)
        at
   
org.apache.beam.repackaged.sql.org.apache.calcite.plan.volcano.VolcanoPlanner.ensureRegistered(VolcanoPlanner.java:90)
        at
   
org.apache.beam.repackaged.sql.org.apache.calcite.rel.AbstractRelNode.onRegister(AbstractRelNode.java:329)
        at
   
org.apache.beam.repackaged.sql.org.apache.calcite.plan.volcano.VolcanoPlanner.registerImpl(VolcanoPlanner.java:1656)
        at
   
org.apache.beam.repackaged.sql.org.apache.calcite.plan.volcano.VolcanoPlanner.register(VolcanoPlanner.java:846)
        at
   
org.apache.beam.repackaged.sql.org.apache.calcite.plan.volcano.VolcanoPlanner.ensureRegistered(VolcanoPlanner.java:868)
        at
   
org.apache.beam.repackaged.sql.org.apache.calcite.plan.volcano.VolcanoPlanner.ensureRegistered(VolcanoPlanner.java:90)
        at
   
org.apache.beam.repackaged.sql.org.apache.calcite.rel.AbstractRelNode.onRegister(AbstractRelNode.java:329)
        at
   
org.apache.beam.repackaged.sql.org.apache.calcite.plan.volcano.VolcanoPlanner.registerImpl(VolcanoPlanner.java:1656)
        at
   
org.apache.beam.repackaged.sql.org.apache.calcite.plan.volcano.VolcanoPlanner.register(VolcanoPlanner.java:846)
        at
   
org.apache.beam.repackaged.sql.org.apache.calcite.plan.volcano.VolcanoPlanner.ensureRegistered(VolcanoPlanner.java:868)
        at
   
org.apache.beam.repackaged.sql.org.apache.calcite.plan.volcano.VolcanoPlanner.ensureRegistered(VolcanoPlanner.java:90)
        at
   
org.apache.beam.repackaged.sql.org.apache.calcite.rel.AbstractRelNode.onRegister(AbstractRelNode.java:329)
        at
   
org.apache.beam.repackaged.sql.org.apache.calcite.plan.volcano.VolcanoPlanner.registerImpl(VolcanoPlanner.java:1656)
        at
   
org.apache.beam.repackaged.sql.org.apache.calcite.plan.volcano.VolcanoPlanner.register(VolcanoPlanner.java:846)
        at
   
org.apache.beam.repackaged.sql.org.apache.calcite.plan.volcano.VolcanoPlanner.ensureRegistered(VolcanoPlanner.java:868)
        at
   
org.apache.beam.repackaged.sql.org.apache.calcite.plan.volcano.VolcanoPlanner.changeTraits(VolcanoPlanner.java:529)
        at
   
org.apache.beam.repackaged.sql.org.apache.calcite.tools.Programs$RuleSetProgram.run(Programs.java:325)
        at
   
org.apache.beam.sdk.extensions.sql.zetasql.ZetaSQLPlannerImpl.transform(ZetaSQLPlannerImpl.java:168)
        at
   
org.apache.beam.sdk.extensions.sql.zetasql.ZetaSQLQueryPlanner.parseQuery(ZetaSQLQueryPlanner.java:99)
        at
   
org.apache.beam.sdk.extensions.sql.zetasql.ZetaSQLQueryPlanner.parseQuery(ZetaSQLQueryPlanner.java:87)
        at
   
org.apache.beam.sdk.extensions.sql.zetasql.ZetaSQLQueryPlanner.convertToBeamRel(ZetaSQLQueryPlanner.java:66)
        at
   
org.apache.beam.sdk.extensions.sql.impl.BeamSqlEnv.parseQuery(BeamSqlEnv.java:103)
   
   
   ```
   
   Caused by: java.lang.NullPointerException
        at 
org.apache.beam.sdk.extensions.sql.impl.rel.BeamSqlRelUtils.getNodeStats(BeamSqlRelUtils.java:96)
        at 
org.apache.beam.sdk.extensions.sql.impl.rel.BeamIOSourceRel.beamComputeSelfCost(BeamIOSourceRel.java:111)
        at 
org.apache.beam.sdk.extensions.sql.impl.CalciteQueryPlanner$NonCumulativeCostImpl.getNonCumulativeCost(CalciteQueryPlanner.java:217)
        at 
GeneratedMetadataHandler_NonCumulativeCost.getNonCumulativeCost_$(Unknown 
Source)
        at 
GeneratedMetadataHandler_NonCumulativeCost.getNonCumulativeCost(Unknown Source)
        at 
org.apache.beam.repackaged.sql.org.apache.calcite.rel.metadata.RelMetadataQuery.getNonCumulativeCost(RelMetadataQuery.java:301)
        at 
org.apache.beam.repackaged.sql.org.apache.calcite.plan.volcano.VolcanoPlanner.getCost(VolcanoPlanner.java:929)
        at 
org.apache.beam.repackaged.sql.org.apache.calcite.plan.volcano.RelSubset.propagateCostImprovements0(RelSubset.java:347)
        at 
org.apache.beam.repackaged.sql.org.apache.calcite.plan.volcano.RelSubset.propagateCostImprovements(RelSubset.java:330)
        at 
org.apache.beam.repackaged.sql.org.apache.calcite.plan.volcano.VolcanoPlanner.addRelToSet(VolcanoPlanner.java:1816)
        at 
org.apache.beam.repackaged.sql.org.apache.calcite.plan.volcano.VolcanoPlanner.registerImpl(VolcanoPlanner.java:1752)
        at 
org.apache.beam.repackaged.sql.org.apache.calcite.plan.volcano.VolcanoPlanner.register(VolcanoPlanner.java:846)
        at 
org.apache.beam.repackaged.sql.org.apache.calcite.plan.volcano.VolcanoPlanner.ensureRegistered(VolcanoPlanner.java:868)
        at 
org.apache.beam.repackaged.sql.org.apache.calcite.plan.volcano.VolcanoPlanner.ensureRegistered(VolcanoPlanner.java:90)
        at 
org.apache.beam.repackaged.sql.org.apache.calcite.rel.AbstractRelNode.onRegister(AbstractRelNode.java:329)
        at 
org.apache.beam.repackaged.sql.org.apache.calcite.plan.volcano.VolcanoPlanner.registerImpl(VolcanoPlanner.java:1656)
        at 
org.apache.beam.repackaged.sql.org.apache.calcite.plan.volcano.VolcanoPlanner.register(VolcanoPlanner.java:846)
        at 
org.apache.beam.repackaged.sql.org.apache.calcite.plan.volcano.VolcanoPlanner.ensureRegistered(VolcanoPlanner.java:868)
        at 
org.apache.beam.repackaged.sql.org.apache.calcite.plan.volcano.VolcanoPlanner.ensureRegistered(VolcanoPlanner.java:90)
        at 
org.apache.beam.repackaged.sql.org.apache.calcite.rel.AbstractRelNode.onRegister(AbstractRelNode.java:329)
        at 
org.apache.beam.repackaged.sql.org.apache.calcite.plan.volcano.VolcanoPlanner.registerImpl(VolcanoPlanner.java:1656)
        at 
org.apache.beam.repackaged.sql.org.apache.calcite.plan.volcano.VolcanoPlanner.register(VolcanoPlanner.java:846)
        at 
org.apache.beam.repackaged.sql.org.apache.calcite.plan.volcano.VolcanoPlanner.ensureRegistered(VolcanoPlanner.java:868)
        at 
org.apache.beam.repackaged.sql.org.apache.calcite.plan.volcano.VolcanoPlanner.ensureRegistered(VolcanoPlanner.java:90)
        at 
org.apache.beam.repackaged.sql.org.apache.calcite.rel.AbstractRelNode.onRegister(AbstractRelNode.java:329)
        at 
org.apache.beam.repackaged.sql.org.apache.calcite.plan.volcano.VolcanoPlanner.registerImpl(VolcanoPlanner.java:1656)
        at 
org.apache.beam.repackaged.sql.org.apache.calcite.plan.volcano.VolcanoPlanner.register(VolcanoPlanner.java:846)
        at 
org.apache.beam.repackaged.sql.org.apache.calcite.plan.volcano.VolcanoPlanner.ensureRegistered(VolcanoPlanner.java:868)
        at 
org.apache.beam.repackaged.sql.org.apache.calcite.plan.volcano.VolcanoPlanner.changeTraits(VolcanoPlanner.java:529)
        at 
org.apache.beam.repackaged.sql.org.apache.calcite.tools.Programs$RuleSetProgram.run(Programs.java:325)
        at 
org.apache.beam.sdk.extensions.sql.zetasql.ZetaSQLPlannerImpl.transform(ZetaSQLPlannerImpl.java:168)
        at 
org.apache.beam.sdk.extensions.sql.zetasql.ZetaSQLQueryPlanner.parseQuery(ZetaSQLQueryPlanner.java:99)
        at 
org.apache.beam.sdk.extensions.sql.zetasql.ZetaSQLQueryPlanner.parseQuery(ZetaSQLQueryPlanner.java:87)
        at 
org.apache.beam.sdk.extensions.sql.zetasql.ZetaSQLQueryPlanner.convertToBeamRel(ZetaSQLQueryPlanner.java:66)
        at 
org.apache.beam.sdk.extensions.sql.impl.BeamSqlEnv.parseQuery(BeamSqlEnv.java:103)
   {code}
   
   Imported from Jira 
[BEAM-8081](https://issues.apache.org/jira/browse/BEAM-8081). Original Jira may 
contain additional context.
   Reported by: kanterov.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to