[
https://issues.apache.org/jira/browse/FLINK-21859?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17320259#comment-17320259
]
Till Rohrmann edited comment on FLINK-21859 at 4/13/21, 3:42 PM:
-----------------------------------------------------------------
I think I know what the problem is: The problem is that we offer slot
{{6bea78f0eeb44c254e8de2ca115206b2}} twice. The first time we offer the slot it
gets rejected. However before we process the answer we offer this slot a second
time. If now the second slot offering is accepted, then we accept a slot which
has already been freed.
What this means is that we must not free/release slots which are still offered.
One way to solve this problem is that we only allow a single slot offering for
a job to take place. Alternatively, we must filter out responses which are
outdated because a new slot offering has already been sent.
was (Author: till.rohrmann):
I think I know what the problem is: The problem is that we offer slot
{{6bea78f0eeb44c254e8de2ca115206b2}} twice. The first time we offer the slot it
gets rejected. However before we process the answer we offer this slot a second
time. If now the second slot offering is accepted, then we accept a slot which
has already been freed.
> Batch job fails due to "Could not mark slot 61a637e3977c58a0e6b73533c419297d
> active"
> ------------------------------------------------------------------------------------
>
> Key: FLINK-21859
> URL: https://issues.apache.org/jira/browse/FLINK-21859
> Project: Flink
> Issue Type: Bug
> Components: Runtime / Coordination
> Affects Versions: 1.13.0
> Reporter: Yingjie Cao
> Assignee: Chesnay Schepler
> Priority: Blocker
> Fix For: 1.13.0
>
> Attachments: jm.log.zip, jm.log.zip, tm.log.zip, tm1.log.zip,
> tm2.log.zip
>
>
> Here is the error stack:
> {code:java}
> 2021-03-18 19:05:31org.apache.flink.runtime.JobException: Recovery is
> suppressed by NoRestartBackoffTimeStrategy
> at
> org.apache.flink.runtime.executiongraph.failover.flip1.ExecutionFailureHandler.handleFailure(ExecutionFailureHandler.java:130
> undefined)
> at
> org.apache.flink.runtime.executiongraph.failover.flip1.ExecutionFailureHandler.getFailureHandlingResult(ExecutionFailureHandler.java:81
> undefined)
> at
> org.apache.flink.runtime.scheduler.DefaultScheduler.handleTaskFailure(DefaultScheduler.java:221
> undefined)
> at
> org.apache.flink.runtime.scheduler.DefaultScheduler.maybeHandleTaskFailure(DefaultScheduler.java:212
> undefined)
> at
> org.apache.flink.runtime.scheduler.DefaultScheduler.updateTaskExecutionStateInternal(DefaultScheduler.java:203
> undefined)
> at
> org.apache.flink.runtime.scheduler.SchedulerBase.updateTaskExecutionState(SchedulerBase.java:701
> undefined)
> at
> org.apache.flink.runtime.scheduler.UpdateSchedulerNgOnInternalFailuresListener.notifyTaskFailure(UpdateSchedulerNgOnInternalFailuresListener.java:51
> undefined)
> at
> org.apache.flink.runtime.executiongraph.DefaultExecutionGraph.notifySchedulerNgAboutInternalTaskFailure(DefaultExecutionGraph.java:1449
> undefined)
> at
> org.apache.flink.runtime.executiongraph.Execution.processFail(Execution.java:1105
> undefined)
> at
> org.apache.flink.runtime.executiongraph.Execution.processFail(Execution.java:1045
> undefined)
> at
> org.apache.flink.runtime.executiongraph.Execution.fail(Execution.java:754
> undefined)
> at
> org.apache.flink.runtime.jobmaster.slotpool.SingleLogicalSlot.signalPayloadRelease(SingleLogicalSlot.java:195
> undefined)
> at
> org.apache.flink.runtime.jobmaster.slotpool.SingleLogicalSlot.release(SingleLogicalSlot.java:182
> undefined)
> at
> org.apache.flink.runtime.scheduler.SharedSlot.lambda$release$4(SharedSlot.java:271
> undefined)
> at
> java.util.concurrent.CompletableFuture.uniAccept(CompletableFuture.java:656
> undefined)
> at
> java.util.concurrent.CompletableFuture.uniAcceptStage(CompletableFuture.java:669
> undefined)
> at
> java.util.concurrent.CompletableFuture.thenAccept(CompletableFuture.java:1997
> undefined)
> at
> org.apache.flink.runtime.scheduler.SharedSlot.release(SharedSlot.java:271
> undefined)
> at
> org.apache.flink.runtime.jobmaster.slotpool.AllocatedSlot.releasePayload(AllocatedSlot.java:152
> undefined)
> at
> org.apache.flink.runtime.jobmaster.slotpool.DefaultDeclarativeSlotPool.releasePayload(DefaultDeclarativeSlotPool.java:385
> undefined)
> at
> org.apache.flink.runtime.jobmaster.slotpool.DefaultDeclarativeSlotPool.lambda$releaseSlot$1(DefaultDeclarativeSlotPool.java:376
> undefined)
> at java.util.Optional.ifPresent(Optional.java:159 undefined)
> at
> org.apache.flink.runtime.jobmaster.slotpool.DefaultDeclarativeSlotPool.releaseSlot(DefaultDeclarativeSlotPool.java:374
> undefined)
> at
> org.apache.flink.runtime.jobmaster.slotpool.DeclarativeSlotPoolService.failAllocation(DeclarativeSlotPoolService.java:198
> undefined)
> at
> org.apache.flink.runtime.jobmaster.JobMaster.internalFailAllocation(JobMaster.java:650
> undefined)
> at
> org.apache.flink.runtime.jobmaster.JobMaster.failSlot(JobMaster.java:636
> undefined)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62
> undefined)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43
> undefined)
> at java.lang.reflect.Method.invoke(Method.java:498 undefined)
> at
> org.apache.flink.runtime.rpc.akka.AkkaRpcActor.handleRpcInvocation(AkkaRpcActor.java:301
> undefined)
> at
> org.apache.flink.runtime.rpc.akka.AkkaRpcActor.handleRpcMessage(AkkaRpcActor.java:212
> undefined)
> at
> org.apache.flink.runtime.rpc.akka.FencedAkkaRpcActor.handleRpcMessage(FencedAkkaRpcActor.java:77
> undefined)
> at
> org.apache.flink.runtime.rpc.akka.AkkaRpcActor.handleMessage(AkkaRpcActor.java:158
> undefined)
> at akka.japi.pf.UnitCaseStatement.apply(CaseStatements.scala:26 undefined)
>
> at akka.japi.pf.UnitCaseStatement.apply(CaseStatements.scala:21 undefined)
>
> at scala.PartialFunction$class.applyOrElse(PartialFunction.scala:123
> undefined)
> at akka.japi.pf.UnitCaseStatement.applyOrElse(CaseStatements.scala:21
> undefined)
> at scala.PartialFunction$OrElse.applyOrElse(PartialFunction.scala:170
> undefined)
> at scala.PartialFunction$OrElse.applyOrElse(PartialFunction.scala:171
> undefined)
> at scala.PartialFunction$OrElse.applyOrElse(PartialFunction.scala:171
> undefined)
> at akka.actor.Actor$class.aroundReceive(Actor.scala:517 undefined)
> at akka.actor.AbstractActor.aroundReceive(AbstractActor.scala:225
> undefined)
> at akka.actor.ActorCell.receiveMessage(ActorCell.scala:592 undefined)
> at akka.actor.ActorCell.invoke(ActorCell.scala:561 undefined)
> at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:258 undefined)
> at akka.dispatch.Mailbox.run(Mailbox.scala:225 undefined)
> at akka.dispatch.Mailbox.exec(Mailbox.scala:235 undefined)
> at akka.dispatch.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260
> undefined)
> at
> akka.dispatch.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339
> undefined)
> at akka.dispatch.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979
> undefined)
> at
> akka.dispatch.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107
> undefined)
> Caused by: org.apache.flink.util.FlinkException: Could not mark slot
> 61a637e3977c58a0e6b73533c419297d active.
> at
> org.apache.flink.runtime.taskexecutor.TaskExecutor.lambda$handleAcceptedSlotOffers$18(TaskExecutor.java:1469
> undefined)
> at
> java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:760
> undefined)
> at
> java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:736
> undefined)
> at
> java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:442
> undefined)
> at
> org.apache.flink.runtime.rpc.akka.AkkaRpcActor.handleRunAsync(AkkaRpcActor.java:440
> undefined)
> at
> org.apache.flink.runtime.rpc.akka.AkkaRpcActor.handleRpcMessage(AkkaRpcActor.java:208
> undefined) ... 19 more
> {code}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)