Hi Gyula, Your issue is possibly related to [1] that slots prematurely released. I’ve raised a PR which is still pending review.
[1] https://issues.apache.org/jira/browse/FLINK-10941 > On Dec 20, 2018, at 9:33 PM, Gyula Fóra <gyula.f...@gmail.com> wrote: > > Hi! > > Since we have moved to the new execution mode with Flink 1.7.0 we have > observed some pretty bad stability issues with the Yarn execution. > > It's pretty hard to understand what's going on so sorry for the vague > description but here is what seems to happen: > > In some cases when a bigger job fails (lets say 30 taskmanagers, 10 slots > each) and the job tries to recover we can observe taskmanagers start to fail. > > The errors usually look like this: > 20181220T141057.132+0100 INFO The heartbeat of TaskManager with id > container_e15_1542798679751_0033_01_000021 timed out. > [org.apache.flink.runtime.resourcemanager.ResourceManager$TaskManagerHeartbeatListener$1.run() > @ 1137] > 20181220T141057.133+0100 INFO Closing TaskExecutor connection > container_e15_1542798679751_0033_01_000021 because: The heartbeat of > TaskManager with id container_e15_1542798679751_0033_01_000021 timed out. > [org.apache.flink.runtime.resourcemanager.ResourceManager.closeTaskManagerConnection() > @ 822] > 20181220T141057.135+0100 INFO Execute processors -> (Filter config stream -> > (Filter Failures, Flat Map), Filter BEA) (168/180) > (3e9c164e4c0594f75c758624815265f1) switched from RUNNING to FAILED. > org.apache.flink.util.FlinkException: The assigned slot > container_e15_1542798679751_0033_01_000021_0 was removed. > at > org.apache.flink.runtime.resourcemanager.slotmanager.SlotManager.removeSlot(SlotManager.java:893) > at > org.apache.flink.runtime.resourcemanager.slotmanager.SlotManager.removeSlots(SlotManager.java:863) > at > org.apache.flink.runtime.resourcemanager.slotmanager.SlotManager.internalUnregisterTaskManager(SlotManager.java:1058) > at > org.apache.flink.runtime.resourcemanager.slotmanager.SlotManager.unregisterTaskManager(SlotManager.java:385) > at > org.apache.flink.runtime.resourcemanager.ResourceManager.closeTaskManagerConnection(ResourceManager.java:825) > at > org.apache.flink.runtime.resourcemanager.ResourceManager$TaskManagerHeartbeatListener$1.run(ResourceManager.java:1139) > at > org.apache.flink.runtime.rpc.akka.AkkaRpcActor.handleRunAsync(AkkaRpcActor.java:332) > at > org.apache.flink.runtime.rpc.akka.AkkaRpcActor.handleRpcMessage(AkkaRpcActor.java:158) > at > org.apache.flink.runtime.rpc.akka.FencedAkkaRpcActor.handleRpcMessage(FencedAkkaRpcActor.java:70) > at > org.apache.flink.runtime.rpc.akka.AkkaRpcActor.onReceive(AkkaRpcActor.java:142) > at > org.apache.flink.runtime.rpc.akka.FencedAkkaRpcActor.onReceive(FencedAkkaRpcActor.java:40) > at > akka.actor.UntypedActor$$anonfun$receive$1.applyOrElse(UntypedActor.scala:165) > at akka.actor.Actor$class.aroundReceive(Actor.scala:502) > at akka.actor.UntypedActor.aroundReceive(UntypedActor.scala:95) > at akka.actor.ActorCell.receiveMessage(ActorCell.scala:526) > at akka.actor.ActorCell.invoke(ActorCell.scala:495) > at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:257) > at akka.dispatch.Mailbox.run(Mailbox.scala:224) > at akka.dispatch.Mailbox.exec(Mailbox.scala:234) > at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260) > at > scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339) > at > scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979) > at > scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107) > [org.apache.flink.runtime.executiongraph.Execution.transitionState() @ 1342] > > The job then goes in a restart loop, where taskmanagers come and go, the UI > sometimes displays more than 30 taskmanagers and some extra slots. I have in > some instances seen "GC overhead limit exceeded" during the recovery which is > very strange. > > I suspect there might be something strange happening, maybe some broken logic > in the slot allocations or some memory leak. > > Has anyone observed anything similar so far? > Seems to only affect some of our larger jobs. This hasn't been a problem in > the previous Flink releases where we always used the "legacy" execution mode. > > Thank you! > Gyula