[
https://issues.apache.org/jira/browse/YARN-11284?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17597285#comment-17597285
]
ASF GitHub Bot commented on YARN-11284:
---------------------------------------
goiri commented on code in PR #4814:
URL: https://github.com/apache/hadoop/pull/4814#discussion_r957551298
##########
hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/uam/UnmanagedAMPoolManager.java:
##########
@@ -501,4 +472,51 @@ public Map<String, FinishApplicationMasterResponse>
batchFinishApplicationMaster
return responseMap;
}
+
+ Runnable createForceFinishApplicationThread() {
+ return () -> {
+
+ ExecutorCompletionService<KillApplicationResponse> completionService =
+ new ExecutorCompletionService<>(threadpool);
+
+ // Save a local copy of the key set so that it won't change with the map
+ Set<String> addressList = new HashSet<>(unmanagedAppMasterMap.keySet());
+
+ LOG.warn("Abnormal shutdown of UAMPoolManager, still {} UAMs in map",
addressList.size());
+
+ for (final String uamId : addressList) {
+ completionService.submit(() -> {
+ try {
+ ApplicationId appId = appIdMap.get(uamId);
+ LOG.info("Force-killing UAM id {} for application {}", uamId,
appId);
+ return unmanagedAppMasterMap.remove(uamId).forceKillApplication();
+ } catch (Exception e) {
+ LOG.error("Failed to kill unmanaged application master", e);
+ return null;
+ }
+ });
+ }
+
+ for (int i = 0; i < addressList.size(); ++i) {
+ try {
+ Future<KillApplicationResponse> future = completionService.take();
+ future.get();
Review Comment:
We don't check for anything?
##########
hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/test/java/org/apache/hadoop/yarn/server/uam/TestUnmanagedApplicationManager.java:
##########
@@ -58,6 +64,9 @@ public class TestUnmanagedApplicationManager {
private ApplicationAttemptId attemptId;
+ private UnmanagedAMPoolManager uamPool;
+ private ExecutorService threadpool;
Review Comment:
Clean this?
##########
hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/test/java/org/apache/hadoop/yarn/server/uam/TestUnmanagedApplicationManager.java:
##########
@@ -58,6 +64,9 @@ public class TestUnmanagedApplicationManager {
private ApplicationAttemptId attemptId;
+ private UnmanagedAMPoolManager uamPool;
+ private ExecutorService threadpool;
Review Comment:
stop()
> [Federation] Improve UnmanagedAMPoolManager WithoutBlock ServiceStop
> --------------------------------------------------------------------
>
> Key: YARN-11284
> URL: https://issues.apache.org/jira/browse/YARN-11284
> Project: Hadoop YARN
> Issue Type: Improvement
> Components: federation
> Affects Versions: 3.4.0
> Reporter: fanshilun
> Assignee: fanshilun
> Priority: Major
> Labels: pull-request-available
>
> There is a todo in UnmanagedAMPoolManager#ServiceStop
> {code:java}
> TODO: move waiting for the kill to finish into a separate thread, without
> blocking the serviceStop. {code}
> I use a separate thread for this work, no longer Block blocking the
> serviceStop
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]