zhijiangW commented on a change in pull request #8133: [FLINK-12146][network]
Remove unregister task from NetworkEnvironment to simplify the interface of
ShuffleService
URL: https://github.com/apache/flink/pull/8133#discussion_r275383890
##########
File path:
flink-runtime/src/main/java/org/apache/flink/runtime/taskmanager/Task.java
##########
@@ -879,6 +875,62 @@ else if (transitionState(current, ExecutionState.FAILED,
t)) {
}
}
+ private void releaseNetworkResources() {
+ LOG.debug("Release task {} network resources (state: {}).",
taskNameWithSubtask, getExecutionState());
+
+ for (ResultPartition partition : producedPartitions) {
+
taskEventDispatcher.unregisterPartition(partition.getPartitionId());
+ }
+
+ closeNetworkResources(producedPartitions, inputGates,
isCanceledOrFailed(), getFailureCause(), taskNameWithSubtask);
+ }
+
+ private static void closeNetworkResources(
+ ResultPartition[] producedPartitions,
+ InputGate[] inputGates,
+ String taskNameWithSubtask) {
+ closeNetworkResources(producedPartitions, inputGates, false,
null, taskNameWithSubtask);
+ }
+
+ /**
+ * There are two scenarios to release the network resources. One is
from {@link TaskCanceler} to early
+ * release partitions and gates. Another is from task thread during
task exiting.
+ *
+ * @param producedPartitions the result partitions to be closed
+ * @param inputGates the input gates to be closed
+ * @param isCanceledOrFailed true if the task has failed, is canceled,
or is being canceled at the moment.
+ * @param cause the exception that caused the task to fail, or null, if
the task has not failed.
+ * @param taskNameWithSubtask the name of the task, including subtask
indexes
+ */
+ private static void closeNetworkResources(
+ ResultPartition[] producedPartitions,
+ InputGate[] inputGates,
+ boolean isCanceledOrFailed,
Review comment:
Yes, we prefer this way.
----------------------------------------------------------------
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.
For queries about this service, please contact Infrastructure at:
[email protected]
With regards,
Apache Git Services