pnowojski commented on a change in pull request #11877: URL: https://github.com/apache/flink/pull/11877#discussion_r665394550
########## File path: flink-runtime/src/main/java/org/apache/flink/runtime/io/network/partition/consumer/RemoteInputChannel.java ########## @@ -357,11 +359,26 @@ public void resumeConsumption() throws IOException { checkState(!isReleased.get(), "Channel released."); checkPartitionRequestQueueInitialized(); + if (initialCredit == 0) { + unannouncedCredit.set(0); Review comment: Something sounds wrong here. The race condition that you described above, does it mean that `unannouncedCredit` can be out of sync? That we in reality have released all floating buffers, channel is blocked, but actually `unannouncedCredit > 0`? And it's only fixed after calling `resumeConsumption()`? And as I understand it, without your change, this problem doesn't exist, as floating buffers are kept assigned to the blocked channel and the `unannouncedCredit` (or maybe even assigned `AddCredit` that might have been sent to the upstream node) are consistent with the reality. Also those assigned floating buffers are not used because channel is blocked, but that is not a big issue, because thanks to the exclusive buffers, other channels can make a progress? -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: issues-unsubscr...@flink.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org