From c3b3f9580ef442d85435fcd60d20884e0e377a82 Mon Sep 17 00:00:00 2001 From: Ivan Andika Date: Fri, 6 Mar 2026 11:29:27 +0800 Subject: [PATCH 1/2] HDDS-14766. Close ReconfigurationHandler --- .../java/org/apache/hadoop/ozone/HddsDatanodeService.java | 2 ++ .../org/apache/hadoop/hdds/conf/ReconfigurationHandler.java | 4 +--- .../hadoop/hdds/scm/server/StorageContainerManager.java | 1 + .../main/java/org/apache/hadoop/ozone/om/OzoneManager.java | 2 ++ 4 files changed, 6 insertions(+), 3 deletions(-) diff --git a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/HddsDatanodeService.java b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/HddsDatanodeService.java index 190c542809ff..561d3e1b2447 100644 --- a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/HddsDatanodeService.java +++ b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/HddsDatanodeService.java @@ -81,6 +81,7 @@ import org.apache.hadoop.hdds.tracing.TracingUtil; import org.apache.hadoop.hdds.utils.HddsServerUtil; import org.apache.hadoop.hdds.utils.HddsVersionInfo; +import org.apache.hadoop.hdds.utils.IOUtils; import org.apache.hadoop.metrics2.util.MBeans; import org.apache.hadoop.ozone.container.common.DatanodeLayoutStorage; import org.apache.hadoop.ozone.container.common.helpers.ContainerUtils; @@ -579,6 +580,7 @@ public void stop() { } } } + IOUtils.close(LOG, reconfigurationHandler); if (datanodeStateMachine != null) { datanodeStateMachine.stopDaemon(); } diff --git a/hadoop-hdds/framework/src/main/java/org/apache/hadoop/hdds/conf/ReconfigurationHandler.java b/hadoop-hdds/framework/src/main/java/org/apache/hadoop/hdds/conf/ReconfigurationHandler.java index 32eb67c0797f..1277e1eef3cf 100644 --- a/hadoop-hdds/framework/src/main/java/org/apache/hadoop/hdds/conf/ReconfigurationHandler.java +++ b/hadoop-hdds/framework/src/main/java/org/apache/hadoop/hdds/conf/ReconfigurationHandler.java @@ -186,9 +186,7 @@ public ReconfigurationTaskStatus getReconfigureStatus() throws IOException { @Override public List listReconfigureProperties() throws IOException { requireAdminPrivilege.accept("listReconfigurableProperties"); - Set reconfigureProperties = new TreeSet<>(getReconfigurableProperties()); - reconfigureProperties.addAll(prefixProperties); - return new ArrayList<>(reconfigureProperties); + return new ArrayList<>(new TreeSet<>(getReconfigurableProperties())); } @Override diff --git a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/server/StorageContainerManager.java b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/server/StorageContainerManager.java index 32673e87279b..a0309cde6a52 100644 --- a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/server/StorageContainerManager.java +++ b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/server/StorageContainerManager.java @@ -1644,6 +1644,7 @@ private void persistSCMCertificates() throws IOException { public void stop() { if (isStopped.getAndSet(true)) { LOG.info("Storage Container Manager is not running."); + IOUtils.close(LOG, reconfigurationHandler); IOUtils.close(LOG, scmHAManager); stopReplicationManager(); // started eagerly return; diff --git a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OzoneManager.java b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OzoneManager.java index 070dd6d68b5b..cf10e6643f38 100644 --- a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OzoneManager.java +++ b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OzoneManager.java @@ -199,6 +199,7 @@ import org.apache.hadoop.hdds.server.http.RatisDropwizardExports; import org.apache.hadoop.hdds.utils.HAUtils; import org.apache.hadoop.hdds.utils.HddsServerUtil; +import org.apache.hadoop.hdds.utils.IOUtils; import org.apache.hadoop.hdds.utils.LegacyHadoopConfigurationSource; import org.apache.hadoop.hdds.utils.ProtocolMessageMetrics; import org.apache.hadoop.hdds.utils.TransactionInfo; @@ -2379,6 +2380,7 @@ public boolean stop() { } try { omState = State.STOPPED; + IOUtils.close(LOG, reconfigurationHandler); // Cancel the metrics timer and set to null. if (metricsTimer != null) { metricsTimer.cancel(); From 2dc5b6bb246e7cf51bc9e37ccae8125d1668cf20 Mon Sep 17 00:00:00 2001 From: Ivan Andika Date: Fri, 6 Mar 2026 18:25:09 +0800 Subject: [PATCH 2/2] Address comment --- .../apache/hadoop/hdds/scm/server/StorageContainerManager.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/server/StorageContainerManager.java b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/server/StorageContainerManager.java index a0309cde6a52..133eafe45b73 100644 --- a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/server/StorageContainerManager.java +++ b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/server/StorageContainerManager.java @@ -1644,8 +1644,7 @@ private void persistSCMCertificates() throws IOException { public void stop() { if (isStopped.getAndSet(true)) { LOG.info("Storage Container Manager is not running."); - IOUtils.close(LOG, reconfigurationHandler); - IOUtils.close(LOG, scmHAManager); + IOUtils.close(LOG, reconfigurationHandler, scmHAManager); stopReplicationManager(); // started eagerly return; }