From dd566e2771bd8ebd46f058d7b8dd61d0691d7efe Mon Sep 17 00:00:00 2001 From: Russole <850905junior@gmail.com> Date: Sun, 15 Feb 2026 09:42:49 +0800 Subject: [PATCH 1/4] HDDS-14627. Code cleanup in TestVolumeSet --- .../common/volume/TestVolumeSet.java | 43 ++++++------------- 1 file changed, 12 insertions(+), 31 deletions(-) diff --git a/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/common/volume/TestVolumeSet.java b/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/common/volume/TestVolumeSet.java index 1bf051b27c5..e4e147e5580 100644 --- a/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/common/volume/TestVolumeSet.java +++ b/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/common/volume/TestVolumeSet.java @@ -72,18 +72,17 @@ public void setup() throws Exception { volume1 = baseDir.resolve("disk1").toString(); volume2 = baseDir.resolve("disk2").toString(); - String dataDirKey = volume1 + "," + volume2; + String dataDirValue = volume1 + "," + volume2; volumes.add(volume1); volumes.add(volume2); - conf.set(HDDS_DATANODE_DIR_KEY, dataDirKey); + conf.set(HDDS_DATANODE_DIR_KEY, dataDirValue); conf.set(OzoneConfigKeys.HDDS_CONTAINER_RATIS_DATANODE_STORAGE_DIR, - dataDirKey); + dataDirValue); initializeVolumeSet(); } @AfterEach public void shutdown() throws IOException { - // Delete the volume root dir List vols = new ArrayList<>(); vols.addAll(volumeSet.getVolumesList()); vols.addAll(volumeSet.getFailedVolumesList()); @@ -116,13 +115,10 @@ public void testVolumeSetInitialization() throws Exception { List volumesList = volumeSet.getVolumesList(); - // VolumeSet initialization should add volume1 and volume2 to VolumeSet - assertEquals(volumesList.size(), volumes.size(), - "VolumeSet initialization is incorrect"); - assertTrue(checkVolumeExistsInVolumeSet(volume1), - "VolumeSet not initialized correctly"); - assertTrue(checkVolumeExistsInVolumeSet(volume2), - "VolumeSet not initialized correctly"); + // VolumeSet initialization should load volume1 and volume2. + assertEquals(volumesList.size(), volumes.size()); + assertTrue(checkVolumeExistsInVolumeSet(volume1)); + assertTrue(checkVolumeExistsInVolumeSet(volume2)); assertNumVolumes(volumeSet, 2, 0); } @@ -131,20 +127,14 @@ public void testVolumeSetInitialization() throws Exception { public void testFailVolume() throws Exception { assertNumVolumes(volumeSet, 2, 0); - //Fail a volume volumeSet.failVolume(HddsVolumeUtil.getHddsRoot(volume1)); - // Failed volume should not show up in the volumeList assertEquals(1, volumeSet.getVolumesList().size()); - // Failed volume should be added to FailedVolumeList - assertEquals(1, volumeSet.getFailedVolumesList().size(), - "Failed volume not present in FailedVolumeMap"); + assertEquals(1, volumeSet.getFailedVolumesList().size()); assertEquals(HddsVolumeUtil.getHddsRoot(volume1), - volumeSet.getFailedVolumesList().get(0).getStorageDir().getPath(), - "Failed Volume list did not match"); + volumeSet.getFailedVolumesList().get(0).getStorageDir().getPath()); - // Failed volume should not exist in VolumeMap assertThat(volumeSet.getVolumeMap()).doesNotContainKey(volume1); assertNumVolumes(volumeSet, 1, 1); @@ -155,31 +145,24 @@ public void testVolumeInInconsistentState() throws Exception { assertNumVolumes(volumeSet, 2, 0); assertEquals(2, volumeSet.getVolumesList().size()); - // Add a volume to VolumeSet String volume3 = baseDir + "disk3"; - // Create the root volume dir and create a sub-directory within it. File newVolume = new File(volume3, HDDS_VOLUME_DIR); - System.out.println("new volume root: " + newVolume); assertTrue(newVolume.mkdirs()); - assertTrue(newVolume.exists(), "Failed to create new volume root"); + assertTrue(newVolume.exists()); File dataDir = new File(newVolume, "chunks"); assertTrue(dataDir.mkdirs()); assertTrue(dataDir.exists()); - // The new volume is in an inconsistent state as the root dir is - // non-empty but the version file does not exist. Add Volume should - // return false. + // Root dir is non-empty but version file is missing, so the volume should not be loaded. conf.set(ScmConfigKeys.HDDS_DATANODE_DIR_KEY, conf.get(ScmConfigKeys.HDDS_DATANODE_DIR_KEY) + "," + volume3); volumeSet.shutdown(); initializeVolumeSet(); assertEquals(2, volumeSet.getVolumesList().size()); - assertFalse(checkVolumeExistsInVolumeSet(volume3), "AddVolume should fail" + - " for an inconsistent volume"); + assertFalse(checkVolumeExistsInVolumeSet(volume3)); assertNumVolumes(volumeSet, 2, 1); - // Delete volume3 File volume = new File(volume3); FileUtils.deleteDirectory(volume); } @@ -191,7 +174,6 @@ public void testShutdown() throws Exception { volumeSet.shutdown(); - // Verify that volume usage can be queried during shutdown. for (StorageVolume volume : volumesList) { assertThat(volume.getVolumeUsage()).isNotNull(); volume.getCurrentUsage(); @@ -200,7 +182,6 @@ public void testShutdown() throws Exception { @Test void testFailVolumes(@TempDir File readOnlyVolumePath, @TempDir File volumePath) throws Exception { - //Set to readonly, so that this volume will be failed assumeThat(readOnlyVolumePath.setReadOnly()).isTrue(); OzoneConfiguration ozoneConfig = new OzoneConfiguration(); ozoneConfig.set(HDDS_DATANODE_DIR_KEY, readOnlyVolumePath.getAbsolutePath() From 9e9593e30ce7e3324bac35baf1cf353d09b684f8 Mon Sep 17 00:00:00 2001 From: Russole <850905junior@gmail.com> Date: Mon, 16 Feb 2026 10:42:31 +0800 Subject: [PATCH 2/4] Align volume addition with other volumes --- .../hadoop/ozone/container/common/volume/TestVolumeSet.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/common/volume/TestVolumeSet.java b/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/common/volume/TestVolumeSet.java index e4e147e5580..80adbe8ca6c 100644 --- a/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/common/volume/TestVolumeSet.java +++ b/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/common/volume/TestVolumeSet.java @@ -145,7 +145,7 @@ public void testVolumeInInconsistentState() throws Exception { assertNumVolumes(volumeSet, 2, 0); assertEquals(2, volumeSet.getVolumesList().size()); - String volume3 = baseDir + "disk3"; + String volume3 = baseDir.resolve("disk3").toString(); File newVolume = new File(volume3, HDDS_VOLUME_DIR); assertTrue(newVolume.mkdirs()); From c8d39a0eba6462a005deb682c9b2af005da85757 Mon Sep 17 00:00:00 2001 From: Russole <850905junior@gmail.com> Date: Tue, 17 Feb 2026 00:28:43 +0800 Subject: [PATCH 3/4] Apply changes based on review feedback --- .../hadoop/ozone/container/common/volume/TestVolumeSet.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/common/volume/TestVolumeSet.java b/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/common/volume/TestVolumeSet.java index 80adbe8ca6c..423ce7aae35 100644 --- a/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/common/volume/TestVolumeSet.java +++ b/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/common/volume/TestVolumeSet.java @@ -149,7 +149,6 @@ public void testVolumeInInconsistentState() throws Exception { File newVolume = new File(volume3, HDDS_VOLUME_DIR); assertTrue(newVolume.mkdirs()); - assertTrue(newVolume.exists()); File dataDir = new File(newVolume, "chunks"); assertTrue(dataDir.mkdirs()); assertTrue(dataDir.exists()); @@ -163,8 +162,7 @@ public void testVolumeInInconsistentState() throws Exception { assertFalse(checkVolumeExistsInVolumeSet(volume3)); assertNumVolumes(volumeSet, 2, 1); - File volume = new File(volume3); - FileUtils.deleteDirectory(volume); + FileUtils.deleteDirectory(new File(volume3)); } @Test From d2d86ad2d7f4ecc6fdae7ed734852e412a52e339 Mon Sep 17 00:00:00 2001 From: Russole <850905junior@gmail.com> Date: Tue, 17 Feb 2026 01:06:51 +0800 Subject: [PATCH 4/4] Removew redundant check --- .../hadoop/ozone/container/common/volume/TestVolumeSet.java | 1 - 1 file changed, 1 deletion(-) diff --git a/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/common/volume/TestVolumeSet.java b/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/common/volume/TestVolumeSet.java index 423ce7aae35..932101dc526 100644 --- a/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/common/volume/TestVolumeSet.java +++ b/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/common/volume/TestVolumeSet.java @@ -151,7 +151,6 @@ public void testVolumeInInconsistentState() throws Exception { assertTrue(newVolume.mkdirs()); File dataDir = new File(newVolume, "chunks"); assertTrue(dataDir.mkdirs()); - assertTrue(dataDir.exists()); // Root dir is non-empty but version file is missing, so the volume should not be loaded. conf.set(ScmConfigKeys.HDDS_DATANODE_DIR_KEY, conf.get(ScmConfigKeys.HDDS_DATANODE_DIR_KEY) + "," + volume3);