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 a0317f62cc0..a8046e45e63 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 @@ -1204,10 +1204,15 @@ synchronized void transitionToStandby(boolean initialize) LOG.info("Transitioning to standby state"); HAServiceState state = rmContext.getHAServiceState(); rmContext.setHAServiceState(HAServiceProtocol.HAServiceState.STANDBY); - if (state == HAServiceProtocol.HAServiceState.ACTIVE) { - stopActiveServices(); - reinitialize(initialize); - } + this.rmLoginUGI.doAs(new PrivilegedExceptionAction() { + @Override public Void run() throws Exception { + if (state == HAServiceProtocol.HAServiceState.ACTIVE) { + stopActiveServices(); + reinitialize(initialize); + } + return null; + } + }); LOG.info("Transitioned to standby state"); }