From b3886e56b97636a059d6df1c1ac285d81f6e7a91 Mon Sep 17 00:00:00 2001 From: Viraj Jasani Date: Tue, 23 Nov 2021 16:44:36 +0530 Subject: [PATCH 1/2] HDFS-16350. Datanode start time should be set after RPC server starts successfully --- .../java/org/apache/hadoop/hdfs/server/datanode/DataNode.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/DataNode.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/DataNode.java index 08018ccd4d57c..28a1f7277c29f 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/DataNode.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/DataNode.java @@ -412,7 +412,7 @@ private static Tracer createTracer(Configuration conf) { private ScheduledThreadPoolExecutor metricsLoggerTimer; - private final long startTime = now(); + private long startTime = 0; /** * Creates a dummy DataNode for testing purpose. @@ -2721,6 +2721,7 @@ public void runDatanodeDaemon() throws IOException { } ipcServer.setTracer(tracer); ipcServer.start(); + startTime = now(); startPlugins(getConf()); } From 776b6548240a21d8fc5c08dea40adef542e98852 Mon Sep 17 00:00:00 2001 From: Viraj Jasani Date: Tue, 23 Nov 2021 16:54:30 +0530 Subject: [PATCH 2/2] add test --- .../apache/hadoop/hdfs/server/datanode/TestDataNodeMXBean.java | 1 + 1 file changed, 1 insertion(+) diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/datanode/TestDataNodeMXBean.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/datanode/TestDataNodeMXBean.java index f72f1bce1306b..ea43cccbb1835 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/datanode/TestDataNodeMXBean.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/datanode/TestDataNodeMXBean.java @@ -77,6 +77,7 @@ public void testDataNodeMXBean() throws Exception { Assert.assertEquals(datanode.getVersion(),version); // get attribute "DNStartedTimeInMillis" long startTime = (long) mbs.getAttribute(mxbeanName, "DNStartedTimeInMillis"); + Assert.assertTrue("Datanode start time should not be 0", startTime > 0); Assert.assertEquals(datanode.getDNStartedTimeInMillis(), startTime); // get attribute "SotfwareVersion" String softwareVersion =