Repository: hadoop Updated Branches: refs/heads/branch-2.6 7af3395a4 -> 6b1ee2cfb
YARN-5353. ResourceManager can leak delegation tokens when they are shared across apps. (Jason Lowe via Varun Saxena). Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/6b1ee2cf Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/6b1ee2cf Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/6b1ee2cf Branch: refs/heads/branch-2.6 Commit: 6b1ee2cfb73daf67ebc661188401782dd4817c3f Parents: 7af3395 Author: Varun Saxena <[email protected]> Authored: Wed Jul 13 07:30:15 2016 +0530 Committer: Varun Saxena <[email protected]> Committed: Wed Jul 13 07:30:15 2016 +0530 ---------------------------------------------------------------------- hadoop-yarn-project/CHANGES.txt | 3 +++ .../resourcemanager/security/DelegationTokenRenewer.java | 7 +------ .../resourcemanager/security/TestDelegationTokenRenewer.java | 3 +++ 3 files changed, 7 insertions(+), 6 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hadoop/blob/6b1ee2cf/hadoop-yarn-project/CHANGES.txt ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/CHANGES.txt b/hadoop-yarn-project/CHANGES.txt index 7ede65d..ccc5959 100644 --- a/hadoop-yarn-project/CHANGES.txt +++ b/hadoop-yarn-project/CHANGES.txt @@ -42,6 +42,9 @@ Release 2.6.5 - UNRELEASED YARN-4393. Fix intermittent test failure for TestResourceLocalizationService #testFailedDirsResourceRelease (Varun Saxana via rohithsharmaks) + YARN-5353. ResourceManager can leak delegation tokens when they are shared across + apps. (Jason Lowe via Varun Saxena) + Release 2.6.4 - 2016-02-11 INCOMPATIBLE CHANGES http://git-wip-us.apache.org/repos/asf/hadoop/blob/6b1ee2cf/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/security/DelegationTokenRenewer.java ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/security/DelegationTokenRenewer.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/security/DelegationTokenRenewer.java index 2cd31a1..0c4a5c7 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/security/DelegationTokenRenewer.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/security/DelegationTokenRenewer.java @@ -712,7 +712,7 @@ public class DelegationTokenRenewer extends AbstractService { private void removeApplicationFromRenewal(ApplicationId applicationId) { rmContext.getSystemCredentialsForApps().remove(applicationId); - Set<DelegationTokenToRenew> tokens = appTokens.get(applicationId); + Set<DelegationTokenToRenew> tokens = appTokens.remove(applicationId); if (tokens != null && !tokens.isEmpty()) { synchronized (tokens) { @@ -737,15 +737,10 @@ public class DelegationTokenRenewer extends AbstractService { // cancel the token cancelToken(dttr); - it.remove(); allTokens.remove(dttr.token); } } } - - if(tokens != null && tokens.isEmpty()) { - appTokens.remove(applicationId); - } } /** http://git-wip-us.apache.org/repos/asf/hadoop/blob/6b1ee2cf/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/security/TestDelegationTokenRenewer.java ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/security/TestDelegationTokenRenewer.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/security/TestDelegationTokenRenewer.java index 1a2f96c..3d93518 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/security/TestDelegationTokenRenewer.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/security/TestDelegationTokenRenewer.java @@ -1106,5 +1106,8 @@ public class TestDelegationTokenRenewer { Assert.assertTrue(dttr.referringAppIds.isEmpty()); Assert.assertTrue(dttr.isTimerCancelled()); Assert.assertTrue(Renewer.cancelled); + + // make sure the token also has been removed from appTokens + Assert.assertFalse(renewer.getDelegationTokens().contains(token1)); } } --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
