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

Martijn Visser commented on FLINK-36298:
----------------------------------------

Still failing on master.

[https://dev.azure.com/apache-flink/apache-flink/_build/results?buildId=77042&view=results]
 (leg: test_ci python)

Commit \{{21b47b97d2}} (nightly 20260713.6). Two PyFlink tests hit the same 
\{{NullPointerException: metadataHandlerProvider}} at 
\{{RelMetadataQueryBase.java:122}}:
* \{{StreamPandasConversionTests.test_to_pandas_for_retract_table}}
* \{{StreamPandasConversionTests.test_to_pandas_with_event_time}}

New surfacing path vs. the original report. The 2024 stack surfaced via 
\{{VolcanoPlanner.getCost}} -> \{{RelMetadataQuery.getNonCumulativeCost}}. This 
run surfaces via \{{HepPlanner}} rule application:

{code:java}
java.lang.NullPointerException: metadataHandlerProvider
at java.base/java.util.Objects.requireNonNull(Objects.java:235)
at 
org.apache.calcite.rel.metadata.RelMetadataQueryBase.getMetadataHandlerProvider(RelMetadataQueryBase.java:122)
at 
org.apache.calcite.rel.metadata.RelMetadataQueryBase.revise(RelMetadataQueryBase.java:118)
at 
org.apache.flink.table.planner.plan.metadata.FlinkRelMetadataQuery.getRelModifiedMonotonicity(FlinkRelMetadataQuery.java:251)
at 
org.apache.flink.table.planner.plan.utils.AggregateUtil$.deriveAggCallNeedRetractions(AggregateUtil.scala:1041)
at 
org.apache.flink.table.planner.plan.utils.AggregateUtil$.deriveAggregateInfoList(AggregateUtil.scala:264)
at 
org.apache.flink.table.planner.plan.nodes.physical.stream.StreamPhysicalGroupAggregate.<init>(StreamPhysicalGroupAggregate.scala:58)
at 
org.apache.flink.table.planner.plan.nodes.physical.stream.StreamPhysicalGroupAggregate.copy(StreamPhysicalGroupAggregate.scala:73)
at 
org.apache.flink.table.planner.plan.rules.physical.stream.DuplicateChangesInferRule.onMatch(DuplicateChangesInferRule.java:143)
at org.apache.calcite.plan.hep.HepPlanner.applyRule(HepPlanner.java:527)
...
at 
org.apache.flink.table.runtime.arrow.ArrowUtils.collectAsPandasDataFrame(ArrowUtils.java:584)
{code}

Same underlying cause: the Calcite metadata-handler thread-local 
(\{{RelMetadataQueryBase.THREAD_PROVIDERS}}) is unset when a fresh 
\{{FlinkRelMetadataQuery}} is used during this rule's \{{copy()}}. 
\{{DuplicateChangesInferRule}} is only where it surfaced this run, not 
necessarily the cause.

> NullPointerException in Calcite causes a PyFlink test failure
> -------------------------------------------------------------
>
>                 Key: FLINK-36298
>                 URL: https://issues.apache.org/jira/browse/FLINK-36298
>             Project: Flink
>          Issue Type: Bug
>          Components: Table SQL / API
>    Affects Versions: 2.0-preview
>            Reporter: Matthias Pohl
>            Priority: Critical
>              Labels: pull-request-available, test-stability
>
> https://dev.azure.com/apache-flink/apache-flink/_build/results?buildId=62146&view=logs&j=b53e1644-5cb4-5a3b-5d48-f523f39bcf06&t=b68c9f5c-04c9-5c75-3862-a3a27aabbce3&l=25458
> {code}
> java.lang.NullPointerException: metadataHandlerProvider
> Sep 15 03:14:04 E                     at 
> java.base/java.util.Objects.requireNonNull(Objects.java:235)
> Sep 15 03:14:04 E                     at 
> org.apache.calcite.rel.metadata.RelMetadataQueryBase.getMetadataHandlerProvider(RelMetadataQueryBase.java:122)
> Sep 15 03:14:04 E                     at 
> org.apache.calcite.rel.metadata.RelMetadataQueryBase.revise(RelMetadataQueryBase.java:118)
> Sep 15 03:14:04 E                     at 
> org.apache.calcite.rel.metadata.RelMetadataQuery.getNonCumulativeCost(RelMetadataQuery.java:333)
> Sep 15 03:14:04 E                     at 
> org.apache.calcite.plan.volcano.VolcanoPlanner.getCost(VolcanoPlanner.java:727)
> Sep 15 03:14:04 E                     at 
> org.apache.calcite.plan.volcano.VolcanoPlanner.getCostOrInfinite(VolcanoPlanner.java:714)
> Sep 15 03:14:04 E                     at 
> org.apache.calcite.plan.volcano.VolcanoPlanner.propagateCostImprovements(VolcanoPlanner.java:971)
> Sep 15 03:14:04 E                     at 
> org.apache.calcite.plan.volcano.VolcanoPlanner.addRelToSet(VolcanoPlanner.java:1408)
> Sep 15 03:14:04 E                     at 
> org.apache.calcite.plan.volcano.VolcanoPlanner.registerImpl(VolcanoPlanner.java:1368)
> Sep 15 03:14:04 E                     at 
> org.apache.calcite.plan.volcano.VolcanoPlanner.register(VolcanoPlanner.java:598)
> Sep 15 03:14:04 E                     at 
> org.apache.calcite.plan.volcano.VolcanoPlanner.ensureRegistered(VolcanoPlanner.java:613)
> Sep 15 03:14:04 E                     at 
> org.apache.calcite.plan.volcano.VolcanoPlanner.ensureRegistered(VolcanoPlanner.java:95)
> Sep 15 03:14:04 E                     at 
> org.apache.calcite.rel.AbstractRelNode.onRegister(AbstractRelNode.java:274)
> Sep 15 03:14:04 E                     at 
> org.apache.calcite.plan.volcano.VolcanoPlanner.registerImpl(VolcanoPlanner.java:1270)
> Sep 15 03:14:04 E                     at 
> org.apache.calcite.plan.volcano.VolcanoPlanner.register(VolcanoPlanner.java:598)
> Sep 15 03:14:04 E                     at 
> org.apache.calcite.plan.volcano.VolcanoPlanner.ensureRegistered(VolcanoPlanner.java:613)
> Sep 15 03:14:04 E                     at 
> org.apache.calcite.plan.volcano.VolcanoPlanner.ensureRegistered(VolcanoPlanner.java:95)
> Sep 15 03:14:04 E                     at 
> org.apache.calcite.rel.AbstractRelNode.onRegister(AbstractRelNode.java:274)
> Sep 15 03:14:04 E                     at 
> org.apache.calcite.plan.volcano.VolcanoPlanner.registerImpl(VolcanoPlanner.java:1270)
> Sep 15 03:14:04 E                     at 
> org.apache.calcite.plan.volcano.VolcanoPlanner.register(VolcanoPlanner.java:598)
> Sep 15 03:14:04 E                     at 
> org.apache.calcite.plan.volcano.VolcanoPlanner.ensureRegistered(VolcanoPlanner.java:613)
> Sep 15 03:14:04 E                     at 
> org.apache.calcite.plan.volcano.VolcanoPlanner.ensureRegistered(VolcanoPlanner.java:95)
> Sep 15 03:14:04 E                     at 
> org.apache.calcite.rel.AbstractRelNode.onRegister(AbstractRelNode.java:274)
> Sep 15 03:14:04 E                     at 
> org.apache.calcite.plan.volcano.VolcanoPlanner.registerImpl(VolcanoPlanner.java:1270)
> Sep 15 03:14:04 E                     at 
> org.apache.calcite.plan.volcano.VolcanoPlanner.register(VolcanoPlanner.java:598)
> Sep 15 03:14:04 E                     at 
> org.apache.calcite.plan.volcano.VolcanoPlanner.ensureRegistered(VolcanoPlanner.java:613)
> Sep 15 03:14:04 E                     at 
> org.apache.calcite.plan.volcano.VolcanoPlanner.changeTraits(VolcanoPlanner.java:498)
> Sep 15 03:14:04 E                     at 
> org.apache.calcite.tools.Programs$RuleSetProgram.run(Programs.java:315)
> Sep 15 03:14:04 E                     at 
> org.apache.flink.table.planner.plan.optimize.program.FlinkVolcanoProgram.optimize(FlinkVolcanoProgram.scala:62)
> Sep 15 03:14:04 E                     at 
> org.apache.flink.table.planner.plan.optimize.program.FlinkChainedProgram.$anonfun$optimize$1(FlinkChainedProgram.scala:59)
> [...]
> {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to