From a57ada6c1f0c921df910c8b69cddbddd55a4f1b0 Mon Sep 17 00:00:00 2001 From: Xuan Date: Fri, 6 Mar 2015 13:32:05 -0800 Subject: [PATCH] YARN-3227. Timeline renew delegation token fails when RM user's TGT is expired. Contributed by Zhijie Shen (cherry picked from commit d1abc5d4fc00bb1b226066684556ba16ace71744) (cherry picked from commit 56c2050ab7c04e9741bcba9504b71e5a54d09eea) (cherry picked from commit 780a9b1a98827a692e0ea9fbc92f9d1ab979e3e0) --- hadoop-yarn-project/CHANGES.txt | 3 +++ .../apache/hadoop/yarn/client/api/impl/TimelineClientImpl.java | 2 ++ 2 files changed, 5 insertions(+) diff --git a/hadoop-yarn-project/CHANGES.txt b/hadoop-yarn-project/CHANGES.txt index b8c15f93263..1b1d4c04579 100644 --- a/hadoop-yarn-project/CHANGES.txt +++ b/hadoop-yarn-project/CHANGES.txt @@ -105,6 +105,9 @@ Release 2.6.1 - UNRELEASED YARN-3242. Asynchrony in ZK-close can lead to ZKRMStateStore watcher receiving events for old client. (Zhihai Xu via kasha) + YARN-3227. Timeline renew delegation token fails when RM user's TGT is expired + (Zhijie Shen via xgong) + Release 2.6.0 - 2014-11-18 INCOMPATIBLE CHANGES diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/client/api/impl/TimelineClientImpl.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/client/api/impl/TimelineClientImpl.java index 78901c365fe..ad5345c4ff9 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/client/api/impl/TimelineClientImpl.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/client/api/impl/TimelineClientImpl.java @@ -425,6 +425,7 @@ public class TimelineClientImpl extends TimelineClient { UserGroupInformation callerUGI = isProxyAccess ? UserGroupInformation.getCurrentUser().getRealUser() : UserGroupInformation.getCurrentUser(); + callerUGI.checkTGTAndReloginFromKeytab(); try { return callerUGI.doAs(action); } catch (UndeclaredThrowableException e) { @@ -474,6 +475,7 @@ public class TimelineClientImpl extends TimelineClient { : UserGroupInformation.getCurrentUser(); final String doAsUser = isProxyAccess ? UserGroupInformation.getCurrentUser().getShortUserName() : null; + callerUGI.checkTGTAndReloginFromKeytab(); try { return callerUGI.doAs(new PrivilegedExceptionAction() { @Override