From 2b77729fdf4075eab645fdc458047c8f186c32bb Mon Sep 17 00:00:00 2001 From: Subru Krishnan Date: Thu, 14 Dec 2017 14:03:55 -0800 Subject: [PATCH] YARN-7630. Fix AMRMToken rollover handling in AMRMProxy. Contributed by Botong Huang. (cherry picked from commit 17ba74be29193ac15474f73baaaf4e647a95078b) (cherry picked from commit 8d3d7fa1c5fda4ec394b2f64baf1008e7b0d9524) --- .../apache/hadoop/yarn/server/utils/AMRMClientUtils.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/utils/AMRMClientUtils.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/utils/AMRMClientUtils.java index e1f08e3e1b2..5a380c70d3e 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/utils/AMRMClientUtils.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/utils/AMRMClientUtils.java @@ -163,8 +163,12 @@ public final class AMRMClientUtils { LOG.info("Creating RMProxy to RM {} for protocol {} for user {}", rmClusterId, protocol.getSimpleName(), user); if (token != null) { - token.setService(ClientRMProxy.getAMRMTokenService(configuration)); + // preserve the token service sent by the RM when adding the token + // to ensure we replace the previous token setup by the RM. + // Afterwards we can update the service address for the RPC layer. + // Same as YarnServerSecurityUtils.updateAMRMToken() user.addToken(token); + token.setService(ClientRMProxy.getAMRMTokenService(configuration)); setAuthModeInConf(configuration); } final T proxyConnection = user.doAs(new PrivilegedExceptionAction() {