You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flink.apache.org by fa...@apache.org on 2026/09/18 09:28:55 UTC
(flink) branch master updated: [FLINK-40668][network] Document why the recovery drain cannot stall on zero-credit needsRecovery channels
This is an automated email from the ASF dual-hosted git repository.
1996fanrui pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/flink.git
The following commit(s) were added to refs/heads/master by this push:
new 345f99c094c [FLINK-40668][network] Document why the recovery drain cannot stall on zero-credit needsRecovery channels
345f99c094c is described below
commit 345f99c094ca87317a73311ddeb2f4e825caeb98
Author: Rui Fan <19...@gmail.com>
AuthorDate: Tue Sep 15 12:21:25 2026 +0200
[FLINK-40668][network] Document why the recovery drain cannot stall on zero-credit needsRecovery channels
---
.../runtime/io/network/partition/consumer/RemoteInputChannel.java | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/flink-runtime/src/main/java/org/apache/flink/runtime/io/network/partition/consumer/RemoteInputChannel.java b/flink-runtime/src/main/java/org/apache/flink/runtime/io/network/partition/consumer/RemoteInputChannel.java
index c22ba964ae1..bc8a1996b76 100644
--- a/flink-runtime/src/main/java/org/apache/flink/runtime/io/network/partition/consumer/RemoteInputChannel.java
+++ b/flink-runtime/src/main/java/org/apache/flink/runtime/io/network/partition/consumer/RemoteInputChannel.java
@@ -784,8 +784,10 @@ public class RemoteInputChannel extends InputChannel implements RecoverableInput
boolean recycleBuffer = true;
// The first buffer from the producer proves the upstream reader is registered and the
- // connection is live; release any recovery-side awaiter. On later buffers this is a cheap
- // idempotent no-op (the latch count is already zero).
+ // connection is live; release any recovery-side awaiter
+ // (see requestRecoveryBufferBlocking). During recovery this first arrival is typically the
+ // upstream's EndOfOutputChannelStateEvent, which is guaranteed and passes the zero-credit
+ // gate. On later buffers this is a cheap idempotent no-op (the latch is already at zero).
upstreamReady.countDown();
try {