Github user NicoK commented on a diff in the pull request: https://github.com/apache/flink/pull/4533#discussion_r153445970 --- Diff: flink-runtime/src/main/java/org/apache/flink/runtime/io/network/partition/consumer/RemoteInputChannel.java --- @@ -283,10 +283,13 @@ public String toString() { // ------------------------------------------------------------------------ /** - * Enqueue this input channel in the pipeline for sending unannounced credits to producer. + * Enqueue this input channel in the pipeline for notifying the producer of unannounced credit. */ void notifyCreditAvailable() { - //TODO in next PR + // We should skip the notification if this channel is already released. + if (!isReleased.get() && partitionRequestClient != null) { --- End diff -- But neither `CreditBasedClientHandler#ctx`, nor `RemoteInputChannel#partitionRequestClient` are set to `null` when the channel is closed. They are only set once in `CreditBasedClientHandler#channelActive` and `RemoteInputChannel#requestSubpartition` and then the channel is in a valid state to interact with. Or am I not seeing something else here?
---