Ryan Skraba created FLINK-35382: ----------------------------------- Summary: ChangelogCompatibilityITCase.testRestore fails with an NPE Key: FLINK-35382 URL: https://issues.apache.org/jira/browse/FLINK-35382 Project: Flink Issue Type: Bug Affects Versions: 1.20.0 Reporter: Ryan Skraba
* 1.20 Java 8 / Test (module: tests) https://github.com/apache/flink/actions/runs/9110398985/job/25045798401#step:10:8192 It looks like there can be a [NullPointerException at this line|https://github.com/apache/flink/blob/9a5a99b1a30054268bbde36d565cbb1b81018890/flink-runtime/src/main/java/org/apache/flink/runtime/checkpoint/filemerging/FileMergingSnapshotManagerBase.java#L666] causing a test failure: {code} Error: 10:36:23 10:36:23.312 [ERROR] Tests run: 9, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 19.31 s <<< FAILURE! -- in org.apache.flink.test.state.ChangelogCompatibilityITCase Error: 10:36:23 10:36:23.313 [ERROR] org.apache.flink.test.state.ChangelogCompatibilityITCase.testRestore[startWithChangelog=false, restoreWithChangelog=true, restoreFrom=CHECKPOINT, allowStore=true, allowRestore=true] -- Time elapsed: 1.492 s <<< ERROR! May 16 10:36:23 java.lang.RuntimeException: org.opentest4j.AssertionFailedError: Graph is in globally terminal state (FAILED) May 16 10:36:23 at org.apache.flink.test.state.ChangelogCompatibilityITCase.tryRun(ChangelogCompatibilityITCase.java:204) May 16 10:36:23 at org.apache.flink.test.state.ChangelogCompatibilityITCase.restoreAndValidate(ChangelogCompatibilityITCase.java:190) May 16 10:36:23 at java.util.Optional.ifPresent(Optional.java:159) May 16 10:36:23 at org.apache.flink.test.state.ChangelogCompatibilityITCase.testRestore(ChangelogCompatibilityITCase.java:118) May 16 10:36:23 at java.lang.reflect.Method.invoke(Method.java:498) May 16 10:36:23 Caused by: org.opentest4j.AssertionFailedError: Graph is in globally terminal state (FAILED) May 16 10:36:23 at org.junit.jupiter.api.AssertionUtils.fail(AssertionUtils.java:42) May 16 10:36:23 at org.junit.jupiter.api.Assertions.fail(Assertions.java:150) May 16 10:36:23 at org.apache.flink.runtime.testutils.CommonTestUtils.lambda$waitForAllTaskRunning$3(CommonTestUtils.java:214) May 16 10:36:23 at org.apache.flink.runtime.testutils.CommonTestUtils.waitUntilCondition(CommonTestUtils.java:151) May 16 10:36:23 at org.apache.flink.runtime.testutils.CommonTestUtils.waitUntilCondition(CommonTestUtils.java:145) May 16 10:36:23 at org.apache.flink.runtime.testutils.CommonTestUtils.waitForAllTaskRunning(CommonTestUtils.java:209) May 16 10:36:23 at org.apache.flink.runtime.testutils.CommonTestUtils.waitForAllTaskRunning(CommonTestUtils.java:182) May 16 10:36:23 at org.apache.flink.test.state.ChangelogCompatibilityITCase.submit(ChangelogCompatibilityITCase.java:284) May 16 10:36:23 at org.apache.flink.test.state.ChangelogCompatibilityITCase.tryRun(ChangelogCompatibilityITCase.java:197) May 16 10:36:23 ... 4 more May 16 10:36:23 Caused by: org.apache.flink.runtime.JobException: org.apache.flink.runtime.JobException: Recovery is suppressed by NoRestartBackoffTimeStrategy May 16 10:36:23 at org.apache.flink.runtime.executiongraph.failover.ExecutionFailureHandler.handleFailure(ExecutionFailureHandler.java:219) May 16 10:36:23 at org.apache.flink.runtime.executiongraph.failover.ExecutionFailureHandler.handleFailureAndReport(ExecutionFailureHandler.java:166) May 16 10:36:23 at org.apache.flink.runtime.executiongraph.failover.ExecutionFailureHandler.getFailureHandlingResult(ExecutionFailureHandler.java:121) May 16 10:36:23 at org.apache.flink.runtime.scheduler.DefaultScheduler.recordTaskFailure(DefaultScheduler.java:279) May 16 10:36:23 at org.apache.flink.runtime.scheduler.DefaultScheduler.handleTaskFailure(DefaultScheduler.java:270) May 16 10:36:23 at org.apache.flink.runtime.scheduler.DefaultScheduler.onTaskFailed(DefaultScheduler.java:263) May 16 10:36:23 at org.apache.flink.runtime.scheduler.SchedulerBase.onTaskExecutionStateUpdate(SchedulerBase.java:788) May 16 10:36:23 at org.apache.flink.runtime.scheduler.SchedulerBase.updateTaskExecutionState(SchedulerBase.java:765) May 16 10:36:23 at org.apache.flink.runtime.scheduler.SchedulerNG.updateTaskExecutionState(SchedulerNG.java:83) May 16 10:36:23 at org.apache.flink.runtime.jobmaster.JobMaster.updateTaskExecutionState(JobMaster.java:496) May 16 10:36:23 at java.lang.reflect.Method.invoke(Method.java:498) May 16 10:36:23 at org.apache.flink.runtime.rpc.pekko.PekkoRpcActor.lambda$handleRpcInvocation$1(PekkoRpcActor.java:318) May 16 10:36:23 at org.apache.flink.runtime.concurrent.ClassLoadingUtils.runWithContextClassLoader(ClassLoadingUtils.java:83) May 16 10:36:23 at org.apache.flink.runtime.rpc.pekko.PekkoRpcActor.handleRpcInvocation(PekkoRpcActor.java:316) May 16 10:36:23 at org.apache.flink.runtime.rpc.pekko.PekkoRpcActor.handleRpcMessage(PekkoRpcActor.java:229) May 16 10:36:23 at org.apache.flink.runtime.rpc.pekko.FencedPekkoRpcActor.handleRpcMessage(FencedPekkoRpcActor.java:88) May 16 10:36:23 at org.apache.flink.runtime.rpc.pekko.PekkoRpcActor.handleMessage(PekkoRpcActor.java:174) May 16 10:36:23 at org.apache.pekko.japi.pf.UnitCaseStatement.apply(CaseStatements.scala:33) May 16 10:36:23 at org.apache.pekko.japi.pf.UnitCaseStatement.apply(CaseStatements.scala:29) May 16 10:36:23 at scala.PartialFunction.applyOrElse(PartialFunction.scala:127) May 16 10:36:23 at scala.PartialFunction.applyOrElse$(PartialFunction.scala:126) May 16 10:36:23 at org.apache.pekko.japi.pf.UnitCaseStatement.applyOrElse(CaseStatements.scala:29) May 16 10:36:23 at scala.PartialFunction$OrElse.applyOrElse(PartialFunction.scala:175) May 16 10:36:23 at scala.PartialFunction$OrElse.applyOrElse(PartialFunction.scala:176) May 16 10:36:23 at scala.PartialFunction$OrElse.applyOrElse(PartialFunction.scala:176) May 16 10:36:23 at org.apache.pekko.actor.Actor.aroundReceive(Actor.scala:547) May 16 10:36:23 at org.apache.pekko.actor.Actor.aroundReceive$(Actor.scala:545) May 16 10:36:23 at org.apache.pekko.actor.AbstractActor.aroundReceive(AbstractActor.scala:229) May 16 10:36:23 at org.apache.pekko.actor.ActorCell.receiveMessage(ActorCell.scala:590) May 16 10:36:23 at org.apache.pekko.actor.ActorCell.invoke(ActorCell.scala:557) May 16 10:36:23 at org.apache.pekko.dispatch.Mailbox.processMailbox(Mailbox.scala:280) May 16 10:36:23 at org.apache.pekko.dispatch.Mailbox.run(Mailbox.scala:241) May 16 10:36:23 at org.apache.pekko.dispatch.Mailbox.exec(Mailbox.scala:253) May 16 10:36:23 at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289) May 16 10:36:23 at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056) May 16 10:36:23 at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692) May 16 10:36:23 at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:175) May 16 10:36:23 Caused by: java.lang.NullPointerException: java.lang.NullPointerException May 16 10:36:23 at org.apache.flink.runtime.checkpoint.filemerging.FileMergingSnapshotManagerBase.isManagedByFileMergingManager(FileMergingSnapshotManagerBase.java:666) May 16 10:36:23 at org.apache.flink.runtime.checkpoint.filemerging.FileMergingSnapshotManagerBase.lambda$null$3(FileMergingSnapshotManagerBase.java:620) May 16 10:36:23 at java.util.HashMap.computeIfAbsent(HashMap.java:1128) May 16 10:36:23 at org.apache.flink.runtime.checkpoint.filemerging.FileMergingSnapshotManagerBase.lambda$restoreStateHandles$4(FileMergingSnapshotManagerBase.java:616) May 16 10:36:23 at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183) May 16 10:36:23 at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) May 16 10:36:23 at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175) May 16 10:36:23 at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183) May 16 10:36:23 at java.util.stream.Streams$StreamBuilderImpl.forEachRemaining(Streams.java:419) May 16 10:36:23 at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:647) May 16 10:36:23 at java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:272) May 16 10:36:23 at java.util.ArrayList$Itr.forEachRemaining(ArrayList.java:901) May 16 10:36:23 at java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801) May 16 10:36:23 at java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:742) May 16 10:36:23 at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482) May 16 10:36:23 at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472) May 16 10:36:23 at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150) May 16 10:36:23 at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173) May 16 10:36:23 at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) May 16 10:36:23 at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:485) May 16 10:36:23 at java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:272) May 16 10:36:23 at java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:948) May 16 10:36:23 at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482) May 16 10:36:23 at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472) May 16 10:36:23 at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150) May 16 10:36:23 at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173) May 16 10:36:23 at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) May 16 10:36:23 at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:485) May 16 10:36:23 at org.apache.flink.runtime.checkpoint.filemerging.FileMergingSnapshotManagerBase.restoreStateHandles(FileMergingSnapshotManagerBase.java:613) May 16 10:36:23 at org.apache.flink.runtime.checkpoint.filemerging.SubtaskFileMergingManagerRestoreOperation.restore(SubtaskFileMergingManagerRestoreOperation.java:98) May 16 10:36:23 at org.apache.flink.streaming.api.operators.StreamTaskStateInitializerImpl.registerRestoredStateToFileMergingManager(StreamTaskStateInitializerImpl.java:353) May 16 10:36:23 at org.apache.flink.streaming.api.operators.StreamTaskStateInitializerImpl.streamOperatorStateContext(StreamTaskStateInitializerImpl.java:163) May 16 10:36:23 at org.apache.flink.streaming.api.operators.AbstractStreamOperator.initializeState(AbstractStreamOperator.java:267) May 16 10:36:23 at org.apache.flink.streaming.runtime.tasks.RegularOperatorChain.initializeStateAndOpenOperators(RegularOperatorChain.java:106) May 16 10:36:23 at org.apache.flink.streaming.runtime.tasks.StreamTask.restoreStateAndGates(StreamTask.java:851) May 16 10:36:23 at org.apache.flink.streaming.runtime.tasks.StreamTask.lambda$restoreInternal$4(StreamTask.java:805) May 16 10:36:23 at org.apache.flink.streaming.runtime.tasks.StreamTaskActionExecutor$1.call(StreamTaskActionExecutor.java:55) May 16 10:36:23 at org.apache.flink.streaming.runtime.tasks.StreamTask.restoreInternal(StreamTask.java:805) May 16 10:36:23 at org.apache.flink.streaming.runtime.tasks.StreamTask.restore(StreamTask.java:764) May 16 10:36:23 at org.apache.flink.runtime.taskmanager.Task.runWithSystemExitMonitoring(Task.java:960) May 16 10:36:23 at org.apache.flink.runtime.taskmanager.Task.restoreAndInvoke(Task.java:929) May 16 10:36:23 at org.apache.flink.runtime.taskmanager.Task.doRun(Task.java:753) May 16 10:36:23 at org.apache.flink.runtime.taskmanager.Task.run(Task.java:568) May 16 10:36:23 at java.lang.Thread.run(Thread.java:750) May 16 10:36:23 {code} -- This message was sent by Atlassian Jira (v8.20.10#820010)