From eb488705eedeea16254e059f26e5528f58d936f1 Mon Sep 17 00:00:00 2001 From: Vinayakumar B Date: Tue, 12 Aug 2025 05:32:14 +0000 Subject: [PATCH] YARN-11839. [RM HA] - In corner case, RM stay in ACTIVE with RMStateStore in FENCED state --- .../hadoop/yarn/server/resourcemanager/ResourceManager.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/ResourceManager.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/ResourceManager.java index b35f8cb295cae..b2d5a9c9d394d 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/ResourceManager.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/ResourceManager.java @@ -1218,7 +1218,11 @@ protected void serviceStop() throws Exception { * Transition to standby state in a new thread. The transition operation is * asynchronous to avoid deadlock caused by cyclic dependency. */ - private void handleTransitionToStandByInNewThread() { + private synchronized void handleTransitionToStandByInNewThread() { + if (rmContext.getHAServiceState() == HAServiceProtocol.HAServiceState.STANDBY) { + LOG.info("RM already in standby state"); + return; + } Thread standByTransitionThread = new Thread(activeServices.standByTransitionRunnable); standByTransitionThread.setName("StandByTransitionThread");