You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by st...@apache.org on 2020/07/06 15:29:39 UTC
[hadoop] branch branch-3.2 updated: HADOOP-17081. MetricsSystem
doesn't start the sink adapters on restart (#2089)
This is an automated email from the ASF dual-hosted git repository.
stevel pushed a commit to branch branch-3.2
in repository https://gitbox.apache.org/repos/asf/hadoop.git
The following commit(s) were added to refs/heads/branch-3.2 by this push:
new dfb74a3 HADOOP-17081. MetricsSystem doesn't start the sink adapters on restart (#2089)
dfb74a3 is described below
commit dfb74a3eeb43462b3c8527fbc9164caaed72c4fb
Author: Madhusoodan Pataki <mm...@users.noreply.github.com>
AuthorDate: Mon Jul 6 20:55:42 2020 +0530
HADOOP-17081. MetricsSystem doesn't start the sink adapters on restart (#2089)
Contributed by Madhusoodan P
---
.../hadoop/metrics2/impl/MetricsSystemImpl.java | 6 +++++-
.../hadoop/metrics2/impl/TestMetricsSystemImpl.java | 21 +++++++++++++++++++++
2 files changed, 26 insertions(+), 1 deletion(-)
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 624edc9..cf4b4a9 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
@@ -273,7 +273,11 @@ public class MetricsSystemImpl extends MetricsSystem implements MetricsSource {
T register(final String name, final String description, final T sink) {
LOG.debug(name +", "+ description);
if (allSinks.containsKey(name)) {
- LOG.warn("Sink "+ name +" already exists!");
+ if(sinks.get(name) == null) {
+ registerSink(name, description, sink);
+ } else {
+ LOG.warn("Sink "+ name +" already exists!");
+ }
return sink;
}
allSinks.put(name, sink);
diff --git a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/metrics2/impl/TestMetricsSystemImpl.java b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/metrics2/impl/TestMetricsSystemImpl.java
index f3a2553..47520b5 100644
--- a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/metrics2/impl/TestMetricsSystemImpl.java
+++ b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/metrics2/impl/TestMetricsSystemImpl.java
@@ -639,4 +639,25 @@ public class TestMetricsSystemImpl {
private static String getPluginUrlsAsString() {
return "file:metrics2-test-plugin.jar";
}
+
+ @Test
+ public void testMetricSystemRestart() {
+ MetricsSystemImpl ms = new MetricsSystemImpl("msRestartTestSystem");
+ TestSink ts = new TestSink();
+ String sinkName = "restartTestSink";
+
+ try {
+ ms.start();
+ ms.register(sinkName, "", ts);
+ assertNotNull("no adapter exists for " + sinkName,
+ ms.getSinkAdapter(sinkName));
+ ms.stop();
+
+ ms.start();
+ assertNotNull("no adapter exists for " + sinkName,
+ ms.getSinkAdapter(sinkName));
+ } finally {
+ ms.stop();
+ }
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: common-commits-unsubscribe@hadoop.apache.org
For additional commands, e-mail: common-commits-help@hadoop.apache.org