[ https://issues.apache.org/jira/browse/FLINK-18595?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17157944#comment-17157944 ]
Zhijiang commented on FLINK-18595: ---------------------------------- Thanks for reporting this [~dian.fu]. It is caused by concurrently recycling exclusive and floating buffers by both task thread and canceller thread, and it is only valid in release-1.10 branch. I will consider how to fix it properly. > Deadlock during job shutdown > ---------------------------- > > Key: FLINK-18595 > URL: https://issues.apache.org/jira/browse/FLINK-18595 > Project: Flink > Issue Type: Bug > Components: Runtime / Network > Affects Versions: 1.10.0 > Reporter: Dian Fu > Assignee: Zhijiang > Priority: Blocker > > https://travis-ci.org/github/apache/flink/jobs/707843779 > {code} > Found one Java-level deadlock: > ============================= > "Canceler for Flat Map -> Sink: Unnamed (9/12) > (b87b3f2cae66987d94399f12d7fb4641).": > waiting to lock monitor 0x00007f51f655e228 (object 0x00000000812b9180, a > org.apache.flink.runtime.io.network.partition.consumer.RemoteInputChannel$AvailableBufferQueue), > which is held by "Flat Map -> Sink: Unnamed (9/12)" > "Flat Map -> Sink: Unnamed (9/12)": > waiting to lock monitor 0x000055fb00bb4b88 (object 0x00000000812b9210, a > org.apache.flink.runtime.io.network.partition.consumer.RemoteInputChannel$AvailableBufferQueue), > which is held by "Canceler for Flat Map -> Sink: Unnamed (9/12) > (b87b3f2cae66987d94399f12d7fb4641)." > Java stack information for the threads listed above: > =================================================== > "Canceler for Flat Map -> Sink: Unnamed (9/12) > (b87b3f2cae66987d94399f12d7fb4641).": > at > org.apache.flink.runtime.io.network.partition.consumer.RemoteInputChannel.notifyBufferAvailable(RemoteInputChannel.java:360) > - waiting to lock <0x00000000812b9180> (a > org.apache.flink.runtime.io.network.partition.consumer.RemoteInputChannel$AvailableBufferQueue) > at > org.apache.flink.runtime.io.network.buffer.LocalBufferPool.fireBufferAvailableNotification(LocalBufferPool.java:315) > at org.apache.flink.runtime.io.network.b4511: No such > processuffer.LocalBufferPool.recycle(LocalBufferPool.java:305) > at > org.apache.flink.runtime.io.network.buffer.NetworkBuffer.deallocate(NetworkBuffer.java:197) > at > org.apache.flink.shaded.netty4.io.netty.buffer.AbstractReferenceCountedByteBuf.handleRelease(AbstractReferenceCountedByteBuf.java:110) > at > org.apache.flink.shaded.netty4.io.netty.buffer.AbstractReferenceCountedByteBuf.release(AbstractReferenceCountedByteBuf.java:100) > at > org.apache.flink.runtime.io.network.buffer.NetworkBuffer.recycleBuffer(NetworkBuffer.java:171) > at > org.apache.flink.runtime.io.network.partition.consumer.RemoteInputChannel$AvailableBufferQueue.releaseAll(RemoteInputChannel.java:665) > at > org.apache.flink.runtime.io.network.partition.consumer.RemoteInputChannel.releaseAllResources(RemoteInputChannel.java:254) > - locked <0x00000000812b9210> (a > org.apache.flink.runtime.io.network.partition.consumer.RemoteInputChannel$AvailableBufferQueue) > at > org.apache.flink.runtime.io.network.partition.consumer.SingleInputGate.close(SingleInputGate.java:431) > - locked <0x0000000080ba2488> (a java.lang.Object) > at > org.apache.flink.runtime.taskmanager.InputGateWithMetrics.close(InputGateWithMetrics.java:85) > at > org.apache.flink.runtime.taskmanager.Task.closeNetworkResources(Task.java:901) > at > org.apache.flink.runtime.taskmanager.Task$$Lambda$434/985222953.run(Unknown > Source) > at > org.apache.flink.runtime.taskmanager.Task$TaskCanceler.run(Task.java:1370) > at java.lang.Thread.run(Thread.java:748) > "Flat Map -> Sink: Unnamed (9/12)": > at > org.apache.flink.runtime.io.network.partition.consumer.RemoteInputChannel.notifyBufferAvailable(RemoteInputChannel.java:360) > - waiting to lock <0x00000000812b9210> (a > org.apache.flink.runtime.io.network.partition.consumer.RemoteInputChannel$AvailableBufferQueue) > at > org.apache.flink.runtime.io.network.buffer.LocalBufferPool.fireBufferAvailableNotification(LocalBufferPool.java:315) > at > org.apache.flink.runtime.io.network.buffer.LocalBufferPool.recycle(LocalBufferPool.java:305) > at > org.apache.flink.runtime.io.network.buffer.NetworkBuffer.deallocate(NetworkBuffer.java:197) > at > org.apache.flink.shaded.netty4.io.netty.buffer.AbstractReferenceCountedByteBuf.handleRelease(AbstractReferenceCountedByteBuf.java:110) > at > org.apache.flink.shaded.netty4.io.netty.buffer.AbstractReferenceCountedByteBuf.release(AbstractReferenceCountedByteBuf.java:100) > at > org.apache.flink.runtime.io.network.buffer.NetworkBuffer.recycleBuffer(NetworkBuffer.java:171) > at > org.apache.flink.runtime.io.network.partition.consumer.RemoteInputChannel$AvailableBufferQueue.addExclusiveBuffer(RemoteInputChannel.java:629) > at > org.apache.flink.runtime.io.network.partition.consumer.RemoteInputChannel.recycle(RemoteInputChannel.java:314) > - locked <0x00000000812b9180> (a > org.apache.flink.runtime.io.network.partition.consumer.RemoteInputChannel$AvailableBufferQueue) > at > org.apache.flink.runtime.io.network.buffer.NetworkBuffer.deallocate(NetworkBuffer.java:197) > at > org.apache.flink.shaded.netty4.io.netty.buffer.AbstractReferenceCountedByteBuf.handleRelease(AbstractReferenceCountedByteBuf.java:110) > at > org.apache.flink.shaded.netty4.io.netty.buffer.AbstractReferenceCountedByteBuf.release(AbstractReferenceCountedByteBuf.java:100) > at > org.apache.flink.runtime.io.network.buffer.NetworkBuffer.recycleBuffer(NetworkBuffer.java:171) > at > org.apache.flink.streaming.runtime.io.CachedBufferStorage.close(CachedBufferStorage.java:113) > at > org.apache.flink.streaming.runtime.io.CheckpointedInputGate.cleanup(CheckpointedInputGate.java:216) > at > org.apache.flink.streaming.runtime.io.StreamTaskNetworkInput.close(StreamTaskNetworkInput.java:208) > at > org.apache.flink.streaming.runtime.io.StreamOneInputProcessor.close(StreamOneInputProcessor.java:82) > at > org.apache.flink.streaming.runtime.tasks.StreamTask.cleanup(StreamTask.java:298) > at > org.apache.flink.streaming.runtime.tasks.StreamTask.cleanUpInvoke(StreamTask.java:555) > at > org.apache.flink.streaming.runtime.tasks.StreamTask.invoke(StreamTask.java:480) > at org.apache.flink.runtime.taskmanager.Task.doRun(Task.java:708) > at org.apache.flink.runtime.taskmanager.T > ask.run(Task.java:533) > at java.lang.Thread.run(Thread.java:748) > Found 1 deadlock. > {code} -- This message was sent by Atlassian Jira (v8.3.4#803005)