From b24978a655f381c074bd8173622cf510e0d2a89a Mon Sep 17 00:00:00 2001 From: zheng-weihao Date: Mon, 25 Aug 2025 14:16:38 +0800 Subject: [PATCH 1/4] YARN-11856. DOWNLOADING resources unlock and cleanup is interrupted when killing a container that is localizing Signed-off-by: zheng-weihao --- .../localizer/ResourceLocalizationService.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/localizer/ResourceLocalizationService.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/localizer/ResourceLocalizationService.java index a7f0722e66f8e0..341f08b706da6c 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/localizer/ResourceLocalizationService.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/localizer/ResourceLocalizationService.java @@ -1294,8 +1294,12 @@ public void run() { // On error, report failure to Container and signal ABORT // Notify resource of failed localization ContainerId cId = context.getContainerId(); - dispatcher.getEventHandler().handle(new ContainerResourceFailedEvent( - cId, null, exception.getMessage())); + try { + dispatcher.getEventHandler().handle(new ContainerResourceFailedEvent( + cId, null, exception.getMessage())); + } catch (Exception | FSError e) { + LOG.info("Failed to send container resource failed event for " + cId, e); + } } List paths = new ArrayList(); for (LocalizerResourceRequestEvent event : scheduled.values()) { From 5263c72191f854b24009b9925abb376cf4416b2e Mon Sep 17 00:00:00 2001 From: zheng-weihao Date: Mon, 25 Aug 2025 15:31:34 +0800 Subject: [PATCH 2/4] keep code style Signed-off-by: zheng-weihao --- .../localizer/ResourceLocalizationService.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/localizer/ResourceLocalizationService.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/localizer/ResourceLocalizationService.java index 341f08b706da6c..5ed12637b58c91 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/localizer/ResourceLocalizationService.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/localizer/ResourceLocalizationService.java @@ -1295,10 +1295,10 @@ public void run() { // Notify resource of failed localization ContainerId cId = context.getContainerId(); try { - dispatcher.getEventHandler().handle(new ContainerResourceFailedEvent( - cId, null, exception.getMessage())); + dispatcher.getEventHandler().handle(new ContainerResourceFailedEvent( + cId, null, exception.getMessage())); } catch (Exception | FSError e) { - LOG.info("Failed to send container resource failed event for " + cId, e); + LOG.info("Failed to send container resource failed event for " + cId, e); } } List paths = new ArrayList(); From 4c80866ee4fe393f6c5af6face65e3ebc8aa30a3 Mon Sep 17 00:00:00 2001 From: zheng-weihao Date: Mon, 25 Aug 2025 15:33:43 +0800 Subject: [PATCH 3/4] to string Signed-off-by: zheng-weihao --- .../containermanager/localizer/ResourceLocalizationService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/localizer/ResourceLocalizationService.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/localizer/ResourceLocalizationService.java index 5ed12637b58c91..7630b2862d09a2 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/localizer/ResourceLocalizationService.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/localizer/ResourceLocalizationService.java @@ -1298,7 +1298,7 @@ public void run() { dispatcher.getEventHandler().handle(new ContainerResourceFailedEvent( cId, null, exception.getMessage())); } catch (Exception | FSError e) { - LOG.info("Failed to send container resource failed event for " + cId, e); + LOG.info("Failed to send container resource failed event for " + cId.toString(), e); } } List paths = new ArrayList(); From 677985bbe5825c1354b6c88a9018607b2eb9bf11 Mon Sep 17 00:00:00 2001 From: zheng-weihao Date: Wed, 27 Aug 2025 17:15:43 +0800 Subject: [PATCH 4/4] refine catch exception Signed-off-by: zheng-weihao --- .../containermanager/localizer/ResourceLocalizationService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/localizer/ResourceLocalizationService.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/localizer/ResourceLocalizationService.java index 7630b2862d09a2..cfb9919ab14b2a 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/localizer/ResourceLocalizationService.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/localizer/ResourceLocalizationService.java @@ -1297,7 +1297,7 @@ public void run() { try { dispatcher.getEventHandler().handle(new ContainerResourceFailedEvent( cId, null, exception.getMessage())); - } catch (Exception | FSError e) { + } catch (Exception e) { LOG.info("Failed to send container resource failed event for " + cId.toString(), e); } }