Repository: hadoop Updated Branches: refs/heads/trunk 5cda6fffd -> a1afbc48b
YARN-3472. Fixed possible leak in DelegationTokenRenewer#allTokens. Contributed by Rohith Sharmaks Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/a1afbc48 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/a1afbc48 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/a1afbc48 Branch: refs/heads/trunk Commit: a1afbc48b53f6bdbd30dc8eb56a7621d49c5d6db Parents: 5cda6ff Author: Jian He <[email protected]> Authored: Mon Apr 13 14:07:17 2015 -0700 Committer: Jian He <[email protected]> Committed: Mon Apr 13 14:07:17 2015 -0700 ---------------------------------------------------------------------- hadoop-yarn-project/CHANGES.txt | 3 +++ .../resourcemanager/security/DelegationTokenRenewer.java | 1 + .../security/TestDelegationTokenRenewer.java | 11 ++++++++++- 3 files changed, 14 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hadoop/blob/a1afbc48/hadoop-yarn-project/CHANGES.txt ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/CHANGES.txt b/hadoop-yarn-project/CHANGES.txt index ef9ba90..8396f62 100644 --- a/hadoop-yarn-project/CHANGES.txt +++ b/hadoop-yarn-project/CHANGES.txt @@ -180,6 +180,9 @@ Release 2.8.0 - UNRELEASED YARN-3382. Some of UserMetricsInfo metrics are incorrectly set to root queue metrics. (Rohit Agarwal via jianhe) + YARN-3472. Fixed possible leak in DelegationTokenRenewer#allTokens. + (Rohith Sharmaks via jianhe) + Release 2.7.1 - UNRELEASED INCOMPATIBLE CHANGES http://git-wip-us.apache.org/repos/asf/hadoop/blob/a1afbc48/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 d49ecfc..e307645 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 @@ -577,6 +577,7 @@ public class DelegationTokenRenewer extends AbstractService { DelegationTokenToRenew t = iter.next(); if (t.token.getKind().equals(new Text("HDFS_DELEGATION_TOKEN"))) { iter.remove(); + allTokens.remove(t.token); t.cancelTimer(); LOG.info("Removed expiring token " + t); } http://git-wip-us.apache.org/repos/asf/hadoop/blob/a1afbc48/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 bc9c295..f2c0a30 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 @@ -906,7 +906,16 @@ public class TestDelegationTokenRenewer { new HashMap<ApplicationAccessType, String>(), false, "default", 1, credentials); - // wait for the initial expiring hdfs token to be removed. + // wait for the initial expiring hdfs token to be removed from allTokens + GenericTestUtils.waitFor(new Supplier<Boolean>() { + public Boolean get() { + return + rm.getRMContext().getDelegationTokenRenewer().getAllTokens() + .get(token1) == null; + } + }, 1000, 20000); + + // wait for the initial expiring hdfs token to be removed from appTokens GenericTestUtils.waitFor(new Supplier<Boolean>() { public Boolean get() { return !rm.getRMContext().getDelegationTokenRenewer()
