Arvid Heise created FLINK-23759: ----------------------------------- Summary: notifyCheckpointComplete without corresponding snapshotState Key: FLINK-23759 URL: https://issues.apache.org/jira/browse/FLINK-23759 Project: Flink Issue Type: Bug Components: Runtime / Checkpointing Affects Versions: 1.14.0 Reporter: Arvid Heise
In a private run on AZP, I found a run where {{notifyCheckpointComplete}} was invoked without prior {{snapshotState}} after the default ENABLE_CHECKPOINTS_AFTER_TASKS_FINISH was changed to true. https://dev.azure.com/arvidheise0209/arvidheise/_build/results?buildId=1325&view=logs&j=43a593e7-535d-554b-08cc-244368da36b4&t=82d122c0-8bbf-56f3-4c0d-8e3d69630d0f This causes the following NPE because the implementation relies on {{notifyCheckpointComplete}} being called after a corresponding {{snapshotState}} (valid assumption). {noformat} Aug 12 19:25:20 [ERROR] Tests run: 104, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 87.848 s <<< FAILURE! - in org.apache.flink.table.planner.runtime.stream.sql.JoinITCase Aug 12 19:25:20 [ERROR] testBigDataOfJoin[StateBackend=HEAP] Time elapsed: 0.792 s <<< ERROR! Aug 12 19:25:20 org.apache.flink.runtime.client.JobExecutionException: Job execution failed. Aug 12 19:25:20 at org.apache.flink.runtime.jobmaster.JobResult.toJobExecutionResult(JobResult.java:144) Aug 12 19:25:20 at org.apache.flink.runtime.minicluster.MiniClusterJobClient.lambda$getJobExecutionResult$3(MiniClusterJobClient.java:137) Aug 12 19:25:20 at java.util.concurrent.CompletableFuture.uniApply(CompletableFuture.java:616) Aug 12 19:25:20 at java.util.concurrent.CompletableFuture$UniApply.tryFire(CompletableFuture.java:591) Aug 12 19:25:20 at java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:488) Aug 12 19:25:20 at java.util.concurrent.CompletableFuture.complete(CompletableFuture.java:1975) Aug 12 19:25:20 at org.apache.flink.runtime.rpc.akka.AkkaInvocationHandler.lambda$invokeRpc$0(AkkaInvocationHandler.java:250) Aug 12 19:25:20 at java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:774) Aug 12 19:25:20 at java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:750) Aug 12 19:25:20 at java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:488) Aug 12 19:25:20 at java.util.concurrent.CompletableFuture.complete(CompletableFuture.java:1975) Aug 12 19:25:20 at org.apache.flink.util.concurrent.FutureUtils.doForward(FutureUtils.java:1389) Aug 12 19:25:20 at org.apache.flink.runtime.concurrent.akka.ClassLoadingUtils.lambda$null$1(ClassLoadingUtils.java:93) Aug 12 19:25:20 at org.apache.flink.runtime.concurrent.akka.ClassLoadingUtils.runWithContextClassLoader(ClassLoadingUtils.java:68) Aug 12 19:25:20 at org.apache.flink.runtime.concurrent.akka.ClassLoadingUtils.lambda$guardCompletionWithContextClassLoader$2(ClassLoadingUtils.java:92) Aug 12 19:25:20 at java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:774) Aug 12 19:25:20 at java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:750) Aug 12 19:25:20 at java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:488) Aug 12 19:25:20 at java.util.concurrent.CompletableFuture.complete(CompletableFuture.java:1975) Aug 12 19:25:20 at org.apache.flink.runtime.concurrent.akka.AkkaFutureUtils$1.onComplete(AkkaFutureUtils.java:47) Aug 12 19:25:20 at akka.dispatch.OnComplete.internal(Future.scala:300) Aug 12 19:25:20 at akka.dispatch.OnComplete.internal(Future.scala:297) Aug 12 19:25:20 at akka.dispatch.japi$CallbackBridge.apply(Future.scala:224) Aug 12 19:25:20 at akka.dispatch.japi$CallbackBridge.apply(Future.scala:221) Aug 12 19:25:20 at scala.concurrent.impl.CallbackRunnable.run(Promise.scala:60) Aug 12 19:25:20 at org.apache.flink.runtime.concurrent.akka.AkkaFutureUtils$DirectExecutionContext.execute(AkkaFutureUtils.java:65) Aug 12 19:25:20 at scala.concurrent.impl.CallbackRunnable.executeWithValue(Promise.scala:68) Aug 12 19:25:20 at scala.concurrent.impl.Promise$DefaultPromise.$anonfun$tryComplete$1(Promise.scala:284) Aug 12 19:25:20 at scala.concurrent.impl.Promise$DefaultPromise.$anonfun$tryComplete$1$adapted(Promise.scala:284) Aug 12 19:25:20 at scala.concurrent.impl.Promise$DefaultPromise.tryComplete(Promise.scala:284) Aug 12 19:25:20 at akka.pattern.PromiseActorRef.$bang(AskSupport.scala:621) Aug 12 19:25:20 at akka.pattern.PipeToSupport$PipeableFuture$$anonfun$pipeTo$1.applyOrElse(PipeToSupport.scala:24) Aug 12 19:25:20 at akka.pattern.PipeToSupport$PipeableFuture$$anonfun$pipeTo$1.applyOrElse(PipeToSupport.scala:23) Aug 12 19:25:20 at scala.concurrent.Future.$anonfun$andThen$1(Future.scala:532) Aug 12 19:25:20 at scala.concurrent.impl.Promise.liftedTree1$1(Promise.scala:29) Aug 12 19:25:20 at scala.concurrent.impl.Promise.$anonfun$transform$1(Promise.scala:29) Aug 12 19:25:20 at org.apache.flink.streaming.runtime.tasks.StreamTask.invoke(StreamTask.java:727) Aug 12 19:25:20 at org.apache.flink.runtime.taskmanager.Task.doRun(Task.java:786) Aug 12 19:25:20 at org.apache.flink.runtime.taskmanager.Task.run(Task.java:572) Aug 12 19:25:20 at java.lang.Thread.run(Thread.java:748) {noformat} [~gaoyunhaii][~pnowojski] -- This message was sent by Atlassian Jira (v8.3.4#803005)