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?
---