diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/security/NMTokenSecretManagerInNM.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/security/NMTokenSecretManagerInNM.java index f895791567..da8fca1240 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/security/NMTokenSecretManagerInNM.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/security/NMTokenSecretManagerInNM.java @@ -172,8 +172,20 @@ public synchronized void setMasterKey(MasterKey masterKey) { if (previousMasterKey != null && keyId == previousMasterKey.getMasterKey().getKeyId()) { masterKeyToUse = previousMasterKey; + if(oldMasterKey != null + && keyId != oldMasterKey.getMasterKey().getKeyId()) { + updateAppAttemptKey(appAttemptId, masterKeyToUse); + LOG.info("NMToken key updated to previousMasterKey({}) for application attempt : {}", + masterKeyToUse.getMasterKey().getKeyId(), appAttemptId.toString()); + } } else if (keyId == currentMasterKey.getMasterKey().getKeyId()) { masterKeyToUse = currentMasterKey; + if(oldMasterKey != null + && keyId != oldMasterKey.getMasterKey().getKeyId()) { + updateAppAttemptKey(appAttemptId, masterKeyToUse); + LOG.info("NMToken key updated to currentMasterKey({}) for application attempt : {}", + masterKeyToUse.getMasterKey().getKeyId(), appAttemptId.toString()); + } } if (nodeId != null && !identifier.getNodeId().equals(nodeId)) {