You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@flink.apache.org by GitBox <gi...@apache.org> on 2019/04/17 07:19:05 UTC

[GitHub] [flink] pnowojski commented on a change in pull request #8133: [FLINK-12146][network] Remove unregister task from NetworkEnvironment to simplify the interface of ShuffleService

pnowojski 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_r276107696
 
 

 ##########
 File path: flink-runtime/src/main/java/org/apache/flink/runtime/taskmanager/Task.java
 ##########
 @@ -882,6 +878,47 @@ 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());
+		}
+
+		closeOrFailNetworkResources(isCanceledOrFailed(), getFailureCause());
+	}
+
+	/**
+	 * 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 isFailed true if the task has failed.
+	 * @param cause the exception that caused the task to fail, or null, if the task has not failed.
+	 */
+	private void closeOrFailNetworkResources(boolean isFailed, @Nullable Throwable cause) {
 
 Review comment:
   Thanks for de duplicating this logic already ( :) ), but you could also go one step further and maybe extract this logic to something like `TaskCloser` class and de-duplicate/re-use it in `TaskCanceller` as well?

----------------------------------------------------------------
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:
users@infra.apache.org


With regards,
Apache Git Services