From 778da79e6f28f5528e107f9b3122925f4a0f05b2 Mon Sep 17 00:00:00 2001 From: Jason Lowe Date: Wed, 13 May 2015 21:06:47 +0000 Subject: [PATCH] YARN-3641. NodeManager: stopRecoveryStore() shouldn't be skipped when exceptions happen in stopping NM's sub-services. Contributed by Junping Du (cherry picked from commit 711d77cc54a64b2c3db70bdacc6bf2245c896a4b) (cherry picked from commit a81ad814610936a02e55964fbe08f7b33fe29b23) (cherry picked from commit aa82b0684554be8d09f6fcd88826f167922280cc) --- hadoop-yarn-project/CHANGES.txt | 3 +++ .../hadoop/yarn/server/nodemanager/NodeManager.java | 11 ++++++++--- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/hadoop-yarn-project/CHANGES.txt b/hadoop-yarn-project/CHANGES.txt index 442614dad92..fc69a51284c 100644 --- a/hadoop-yarn-project/CHANGES.txt +++ b/hadoop-yarn-project/CHANGES.txt @@ -135,6 +135,9 @@ Release 2.6.1 - UNRELEASED YARN-3464. Race condition in LocalizerRunner kills localizer before localizing all resources. (Zhihai Xu via kasha) + YARN-3641. NodeManager: stopRecoveryStore() shouldn't be skipped when + exceptions happen in stopping NM's sub-services. (Junping Du via jlowe) + Release 2.6.0 - 2014-11-18 INCOMPATIBLE CHANGES diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/NodeManager.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/NodeManager.java index 53cbb115a80..063ae87f0ea 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/NodeManager.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/NodeManager.java @@ -269,9 +269,14 @@ protected void serviceStop() throws Exception { if (isStopping.getAndSet(true)) { return; } - super.serviceStop(); - stopRecoveryStore(); - DefaultMetricsSystem.shutdown(); + try { + super.serviceStop(); + DefaultMetricsSystem.shutdown(); + } finally { + // YARN-3641: NM's services stop get failed shouldn't block the + // release of NMLevelDBStore. + stopRecoveryStore(); + } } public String getName() {