You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@flink.apache.org by "Arvid Heise (Jira)" <ji...@apache.org> on 2021/08/13 07:26:00 UTC

[jira] [Created] (FLINK-23759) notifyCheckpointComplete without corresponding snapshotState

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)