[ https://issues.apache.org/jira/browse/FLINK-35382?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17847783#comment-17847783 ]
Jinzhong Li commented on FLINK-35382: ------------------------------------- 1. Because FLINK-32085 has not been resolved, the changelog StateBackend still do not support snapshot-file-merging(FLIP_306) at this time. So the FILE_MERGING_ENABLED config should not be enabled for the ChangelogCompatibilityITCase yet. 2.In FLINK-32092, the FILE_MERGING_ENABLED config is randomly enabled in TestStreamEnvironment, and try to disable it in ChangelogCompatibilityITCase, but it does not actually work. I will fix it by disable FILE_MERGING_ENABLED explicitly in ChangelogCompatibilityITCase. > 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 > Priority: Critical > Labels: test-stability > > * 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)