From ba1eaebff074d828f680cb0f570592649fab7e8a Mon Sep 17 00:00:00 2001 From: "zengqiang.xu" Date: Sat, 30 Jul 2022 11:38:26 +0800 Subject: [PATCH 1/2] HDFS-16704. Datanode return empty response instead of NPE for GetVolumeInfo during restarting --- .../org/apache/hadoop/hdfs/server/datanode/DataNode.java | 5 ++++- 1 file changed, 4 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 d64502b6ddc86..780fad1c22f78 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 @@ -3628,7 +3628,10 @@ public String getBPServiceActorInfo() { */ @Override // DataNodeMXBean public String getVolumeInfo() { - Preconditions.checkNotNull(data, "Storage not yet initialized"); + if (data == null) { + LOG.debug("Storage not yet initialized."); + return JSON.toString(new HashMap()); + } return JSON.toString(data.getVolumeInfoMap()); } From 2af6c2bf0f3163ade7457a10f3b29e6afc34906e Mon Sep 17 00:00:00 2001 From: "zengqiang.xu" Date: Tue, 2 Aug 2022 21:22:22 +0800 Subject: [PATCH 2/2] HDFS-16704. Modify patch based on comment --- .../java/org/apache/hadoop/hdfs/server/datanode/DataNode.java | 2 +- 1 file changed, 1 insertion(+), 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 780fad1c22f78..9c77299e50c4c 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 @@ -3630,7 +3630,7 @@ public String getBPServiceActorInfo() { public String getVolumeInfo() { if (data == null) { LOG.debug("Storage not yet initialized."); - return JSON.toString(new HashMap()); + return ""; } return JSON.toString(data.getVolumeInfoMap()); }