You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by hx...@apache.org on 2020/01/11 16:32:00 UTC

[incubator-iotdb] 01/01: stop the MetricService if the service start failed but the socket has been initialized.

This is an automated email from the ASF dual-hosted git repository.

hxd pushed a commit to branch fix_414_close_metric_service
in repository https://gitbox.apache.org/repos/asf/incubator-iotdb.git

commit 4b1bdc4db6002d9f25ea58a3d4d424bd457e4f43
Author: xiangdong huang <sa...@gmail.com>
AuthorDate: Sun Jan 12 00:30:56 2020 +0800

    stop the MetricService if the service start failed but the socket has been initialized.
---
 .../org/apache/iotdb/db/service/MetricsService.java   | 19 ++++++++++++++-----
 1 file changed, 14 insertions(+), 5 deletions(-)

diff --git a/server/src/main/java/org/apache/iotdb/db/service/MetricsService.java b/server/src/main/java/org/apache/iotdb/db/service/MetricsService.java
index 63315ef..7dab5aa 100644
--- a/server/src/main/java/org/apache/iotdb/db/service/MetricsService.java
+++ b/server/src/main/java/org/apache/iotdb/db/service/MetricsService.java
@@ -89,11 +89,20 @@ public class MetricsService implements MetricsServiceMBean, IService {
     metricsWebUI.initialize();
     server = metricsWebUI.getServer(port);
     metricsSystem.start();
-    executorService.execute(new MetricsServiceThread(server));
-    logger.info("{}: start {} successfully, listening on ip {} port {}",
-        IoTDBConstant.GLOBAL_DB_NAME, this.getID().getName(),
-        IoTDBDescriptor.getInstance().getConfig().getRpcAddress(),
-        IoTDBDescriptor.getInstance().getConfig().getMetricsPort());
+    try {
+      executorService.execute(new MetricsServiceThread(server));
+      logger.info("{}: start {} successfully, listening on ip {} port {}",
+          IoTDBConstant.GLOBAL_DB_NAME, this.getID().getName(),
+          IoTDBDescriptor.getInstance().getConfig().getRpcAddress(),
+          IoTDBDescriptor.getInstance().getConfig().getMetricsPort());
+    } catch (NullPointerException e) {
+      //issue IOTDB-414, we need to stop the service.
+      logger.error("{}: start {} failed, listening on ip {} port {}",
+          IoTDBConstant.GLOBAL_DB_NAME, this.getID().getName(),
+          IoTDBDescriptor.getInstance().getConfig().getRpcAddress(),
+          IoTDBDescriptor.getInstance().getConfig().getMetricsPort());
+      stopService();
+    }
   }
 
   @Override