Anton Kalashnikov created FLINK-24738: -----------------------------------------
Summary: Fail during announcing buffer size to released local channel Key: FLINK-24738 URL: https://issues.apache.org/jira/browse/FLINK-24738 Project: Flink Issue Type: Bug Components: Runtime / Network Affects Versions: 1.14.0 Reporter: Anton Kalashnikov Since we can release all resources not only when the mailbox would be finished but also from the mailbox: {noformat} org.apache.flink.runtime.io.network.partition.consumer.LocalInputChannel.releaseAllResources(LocalInputChannel.java:331) org.apache.flink.runtime.io.network.partition.consumer.SingleInputGate.transformEvent(SingleInputGate.java:808) org.apache.flink.runtime.io.network.partition.consumer.SingleInputGate.transformToBufferOrEvent(SingleInputGate.java:757) org.apache.flink.runtime.io.network.partition.consumer.SingleInputGate.getNextBufferOrEvent(SingleInputGate.java:687) org.apache.flink.runtime.io.network.partition.consumer.SingleInputGate.pollNext(SingleInputGate.java:666) org.apache.flink.runtime.taskmanager.InputGateWithMetrics.pollNext(InputGateWithMetrics.java:142) org.apache.flink.streaming.runtime.io.checkpointing.CheckpointedInputGate.pollNext(CheckpointedInputGate.java:150) org.apache.flink.streaming.runtime.io.AbstractStreamTaskNetworkInput.emitNext(AbstractStreamTaskNetworkInput.java:110) org.apache.flink.streaming.runtime.io.StreamOneInputProcessor.processInput(StreamOneInputProcessor.java:65) org.apache.flink.streaming.runtime.tasks.StreamTask.processInput(StreamTask.java:503) org.apache.flink.streaming.runtime.tasks.mailbox.MailboxProcessor.runMailboxLoop(MailboxProcessor.java:203) org.apache.flink.streaming.runtime.tasks.StreamTask.runMailboxLoop(StreamTask.java:816) org.apache.flink.streaming.runtime.tasks.StreamTask.invoke(StreamTask.java:768) org.apache.flink.runtime.taskmanager.Task.runWithSystemExitMonitoring(Task.java:958) org.apache.flink.runtime.taskmanager.Task.restoreAndInvoke(Task.java:936) org.apache.flink.runtime.taskmanager.Task.doRun(Task.java:750) org.apache.flink.runtime.taskmanager.Task.run(Task.java:571) {noformat} It is possible that after it the BufferDebloater announce the new buffer size which will fail because the channel is released already: {noformat} Caused by: java.lang.IllegalStateException: Channel released. at org.apache.flink.util.Preconditions.checkState(Preconditions.java:193) at org.apache.flink.runtime.io.network.partition.consumer.LocalInputChannel.announceBufferSize(LocalInputChannel.java:354) at org.apache.flink.runtime.io.network.partition.consumer.SingleInputGate.announceBufferSize(SingleInputGate.java:389) at org.apache.flink.runtime.taskmanager.InputGateWithMetrics.announceBufferSize(InputGateWithMetrics.java:102) at org.apache.flink.streaming.runtime.tasks.bufferdebloat.BufferDebloater.recalculateBufferSize(BufferDebloater.java:101) at org.apache.flink.streaming.runtime.tasks.StreamTask.debloat(StreamTask.java:801) at org.apache.flink.streaming.runtime.tasks.StreamTask.lambda$null$4(StreamTask.java:791) at org.apache.flink.streaming.runtime.tasks.StreamTaskActionExecutor$1.runThrowing(StreamTaskActionExecutor.java:50) at org.apache.flink.streaming.runtime.tasks.mailbox.Mail.run(Mail.java:90) at org.apache.flink.streaming.runtime.tasks.mailbox.MailboxProcessor.processMailsWhenDefaultActionUnavailable(MailboxProcessor.java:338) at org.apache.flink.streaming.runtime.tasks.mailbox.MailboxProcessor.processMail(MailboxProcessor.java:324) at org.apache.flink.streaming.runtime.tasks.mailbox.MailboxProcessor.runMailboxLoop(MailboxProcessor.java:201) at org.apache.flink.streaming.runtime.tasks.StreamTask.runMailboxLoop(StreamTask.java:816) at org.apache.flink.streaming.runtime.tasks.StreamTask.invoke(StreamTask.java:768) at org.apache.flink.runtime.taskmanager.Task.runWithSystemExitMonitoring(Task.java:958) at org.apache.flink.runtime.taskmanager.Task.restoreAndInvoke(Task.java:936) at org.apache.flink.runtime.taskmanager.Task.doRun(Task.java:750) at org.apache.flink.runtime.taskmanager.Task.run(Task.java:571) at java.lang.Thread.run(Thread.java:748) {noformat} So I think that we should replace `checkState` with `if` for LocalInputChannel#announceBufferSize since released channel is expected here. -- This message was sent by Atlassian Jira (v8.3.4#803005)