This is an automated email from the ASF dual-hosted git repository.
stevel pushed a commit to branch branch-3.3
in repository https://gitbox.apache.org/repos/asf/hadoop.git
The following commit(s) were added to refs/heads/branch-3.3 by this push:
new 0789ae5 HADOOP-17081. MetricsSystem doesn't start the sink adapters
on restart (#2089)
0789ae5 is described below
commit 0789ae5b78a8ded1cea6d8db668f9fd68fa64f7a
Author: Madhusoodan Pataki <[email protected]>
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 47a3b4c..1b40a17 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: [email protected]
For additional commands, e-mail: [email protected]