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 <[email protected]>
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 {