Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id E36C8200B3B for ; Mon, 11 Jul 2016 22:59:13 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id E1F28160A78; Mon, 11 Jul 2016 20:59:13 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 0D76B160A5E for ; Mon, 11 Jul 2016 22:59:12 +0200 (CEST) Received: (qmail 36997 invoked by uid 500); 11 Jul 2016 20:59:12 -0000 Mailing-List: contact common-commits-help@hadoop.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Delivered-To: mailing list common-commits@hadoop.apache.org Received: (qmail 36987 invoked by uid 99); 11 Jul 2016 20:59:12 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 11 Jul 2016 20:59:12 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 07550DFFF8; Mon, 11 Jul 2016 20:59:12 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: jlowe@apache.org To: common-commits@hadoop.apache.org Message-Id: X-Mailer: ASF-Git Admin Mailer Subject: hadoop git commit: HADOOP-13362. DefaultMetricsSystem leaks the source name when a source unregisters. Contributed by Junping Du Date: Mon, 11 Jul 2016 20:59:12 +0000 (UTC) archived-at: Mon, 11 Jul 2016 20:59:14 -0000 Repository: hadoop Updated Branches: refs/heads/branch-2.7 830516b8c -> 6759cbc56 HADOOP-13362. DefaultMetricsSystem leaks the source name when a source unregisters. Contributed by Junping Du Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/6759cbc5 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/6759cbc5 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/6759cbc5 Branch: refs/heads/branch-2.7 Commit: 6759cbc56a09c129f5902ddbbee7db665ca9c917 Parents: 830516b Author: Jason Lowe Authored: Mon Jul 11 20:58:40 2016 +0000 Committer: Jason Lowe Committed: Mon Jul 11 20:58:40 2016 +0000 ---------------------------------------------------------------------- hadoop-common-project/hadoop-common/CHANGES.txt | 3 +++ .../org/apache/hadoop/metrics2/impl/MetricsSystemImpl.java | 1 + .../apache/hadoop/metrics2/lib/DefaultMetricsSystem.java | 9 +++++++++ .../containermanager/monitor/TestContainerMetrics.java | 4 +++- 4 files changed, 16 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hadoop/blob/6759cbc5/hadoop-common-project/hadoop-common/CHANGES.txt ---------------------------------------------------------------------- diff --git a/hadoop-common-project/hadoop-common/CHANGES.txt b/hadoop-common-project/hadoop-common/CHANGES.txt index 1abebf1..4f6d2f9 100644 --- a/hadoop-common-project/hadoop-common/CHANGES.txt +++ b/hadoop-common-project/hadoop-common/CHANGES.txt @@ -12,6 +12,9 @@ Release 2.7.4 - UNRELEASED BUG FIXES + HADOOP-13362. DefaultMetricsSystem leaks the source name when a source + unregisters (Junping Du via jlowe) + Release 2.7.3 - UNRELEASED INCOMPATIBLE CHANGES http://git-wip-us.apache.org/repos/asf/hadoop/blob/6759cbc5/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/metrics2/impl/MetricsSystemImpl.java ---------------------------------------------------------------------- diff --git a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/metrics2/impl/MetricsSystemImpl.java b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/metrics2/impl/MetricsSystemImpl.java index 4f9289f..a3a5855 100644 --- a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/metrics2/impl/MetricsSystemImpl.java +++ b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/metrics2/impl/MetricsSystemImpl.java @@ -255,6 +255,7 @@ public class MetricsSystemImpl extends MetricsSystem implements MetricsSource { if (namedCallbacks.containsKey(name)) { namedCallbacks.remove(name); } + DefaultMetricsSystem.removeSourceName(name); } synchronized http://git-wip-us.apache.org/repos/asf/hadoop/blob/6759cbc5/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/metrics2/lib/DefaultMetricsSystem.java ---------------------------------------------------------------------- diff --git a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/metrics2/lib/DefaultMetricsSystem.java b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/metrics2/lib/DefaultMetricsSystem.java index d3a5508..3c4aa78 100644 --- a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/metrics2/lib/DefaultMetricsSystem.java +++ b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/metrics2/lib/DefaultMetricsSystem.java @@ -108,6 +108,11 @@ public enum DefaultMetricsSystem { } @InterfaceAudience.Private + public static void removeSourceName(String name) { + INSTANCE.removeSource(name); + } + + @InterfaceAudience.Private public static String sourceName(String name, boolean dupOK) { return INSTANCE.newSourceName(name, dupOK); } @@ -127,6 +132,10 @@ public enum DefaultMetricsSystem { mBeanNames.map.remove(name); } + synchronized void removeSource(String name) { + sourceNames.map.remove(name); + } + synchronized String newSourceName(String name, boolean dupOK) { if (sourceNames.map.containsKey(name)) { if (dupOK) { http://git-wip-us.apache.org/repos/asf/hadoop/blob/6759cbc5/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/monitor/TestContainerMetrics.java ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/monitor/TestContainerMetrics.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/monitor/TestContainerMetrics.java index ec06856..87e6ed2 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/monitor/TestContainerMetrics.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/monitor/TestContainerMetrics.java @@ -136,7 +136,6 @@ public class TestContainerMetrics { system.sampleMetrics(); system.sampleMetrics(); Thread.sleep(100); - system.stop(); // verify metrics1 is unregistered assertTrue(metrics1 != ContainerMetrics.forContainer( system, containerId1, 1, 0)); @@ -146,6 +145,9 @@ public class TestContainerMetrics { // verify metrics3 is still registered assertTrue(metrics3 == ContainerMetrics.forContainer( system, containerId3, 1, 0)); + // move stop() to the end to verify registering containerId1 and + // containerId2 won't get MetricsException thrown. + system.stop(); system.shutdown(); } } --------------------------------------------------------------------- To unsubscribe, e-mail: common-commits-unsubscribe@hadoop.apache.org For additional commands, e-mail: common-commits-help@hadoop.apache.org