This is an automated email from the ASF dual-hosted git repository.
weichiu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ozone.git
The following commit(s) were added to refs/heads/master by this push:
new 7af7593c88d HDDS-13554. Clean up snapshot local YAML file on Snapshot
purge. (#8939)
7af7593c88d is described below
commit 7af7593c88dd19aac56f569daac3db9d74d4b1af
Author: SaketaChalamchala <[email protected]>
AuthorDate: Mon Aug 18 21:32:39 2025 -0700
HDDS-13554. Clean up snapshot local YAML file on Snapshot purge. (#8939)
---
.../ozone/om/response/snapshot/OMSnapshotPurgeResponse.java | 9 +++++++--
.../snapshot/TestOMSnapshotPurgeRequestAndResponse.java | 12 ++++++++++++
2 files changed, 19 insertions(+), 2 deletions(-)
diff --git
a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/response/snapshot/OMSnapshotPurgeResponse.java
b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/response/snapshot/OMSnapshotPurgeResponse.java
index 2503b291c00..ef3555f5435 100644
---
a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/response/snapshot/OMSnapshotPurgeResponse.java
+++
b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/response/snapshot/OMSnapshotPurgeResponse.java
@@ -23,7 +23,9 @@
import com.google.common.annotations.VisibleForTesting;
import jakarta.annotation.Nonnull;
import java.io.IOException;
+import java.nio.file.Files;
import java.nio.file.Path;
+import java.nio.file.Paths;
import java.util.List;
import java.util.Map;
import org.apache.commons.io.FileUtils;
@@ -125,11 +127,14 @@ private void deleteCheckpointDirectory(OMMetadataManager
omMetadataManager,
boolean acquiredSnapshotLock = omLockDetails.isLockAcquired();
if (acquiredSnapshotLock) {
Path snapshotDirPath =
OmSnapshotManager.getSnapshotPath(omMetadataManager, snapshotInfo);
+ Path snapshotLocalDataPath = Paths.get(
+
OmSnapshotManager.getSnapshotLocalPropertyYamlPath(omMetadataManager,
snapshotInfo));
try {
FileUtils.deleteDirectory(snapshotDirPath.toFile());
+ Files.deleteIfExists(snapshotLocalDataPath);
} catch (IOException ex) {
- LOG.error("Failed to delete snapshot directory {} for snapshot {}",
- snapshotDirPath, snapshotInfo.getTableKey(), ex);
+ LOG.error("Failed to delete snapshot directory {} and/or local data
file {} for snapshot {}",
+ snapshotDirPath, snapshotLocalDataPath,
snapshotInfo.getTableKey(), ex);
} finally {
omMetadataManager.getLock().releaseWriteLock(SNAPSHOT_DB_LOCK,
snapshotInfo.getSnapshotId().toString());
}
diff --git
a/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/request/snapshot/TestOMSnapshotPurgeRequestAndResponse.java
b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/request/snapshot/TestOMSnapshotPurgeRequestAndResponse.java
index a986d89260a..d2ceb5a4478 100644
---
a/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/request/snapshot/TestOMSnapshotPurgeRequestAndResponse.java
+++
b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/request/snapshot/TestOMSnapshotPurgeRequestAndResponse.java
@@ -32,6 +32,7 @@
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
+import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
@@ -46,6 +47,7 @@
import org.apache.hadoop.hdds.utils.db.CodecException;
import org.apache.hadoop.hdds.utils.db.Table;
import org.apache.hadoop.ozone.om.OmMetadataManagerImpl;
+import org.apache.hadoop.ozone.om.OmSnapshotManager;
import org.apache.hadoop.ozone.om.SnapshotChainManager;
import org.apache.hadoop.ozone.om.helpers.SnapshotInfo;
import org.apache.hadoop.ozone.om.request.OMRequestTestUtils;
@@ -157,6 +159,14 @@ public void testValidateAndUpdateCache() throws Exception {
List<String> snapshotDbKeysToPurge = createSnapshots(10);
assertFalse(getOmMetadataManager().getSnapshotInfoTable().isEmpty());
+
+ // Check if all the checkpoints are created.
+ for (Path checkpoint : checkpointPaths) {
+ assertTrue(Files.exists(checkpoint));
+ assertTrue(Files.exists(Paths.get(
+ OmSnapshotManager.getSnapshotLocalPropertyYamlPath(checkpoint))));
+ }
+
OMRequest snapshotPurgeRequest = createPurgeKeysRequest(
snapshotDbKeysToPurge);
@@ -180,6 +190,8 @@ public void testValidateAndUpdateCache() throws Exception {
// Check if all the checkpoints are cleared.
for (Path checkpoint : checkpointPaths) {
assertFalse(Files.exists(checkpoint));
+ assertFalse(Files.exists(Paths.get(
+ OmSnapshotManager.getSnapshotLocalPropertyYamlPath(checkpoint))));
}
assertEquals(initialSnapshotPurgeCount + 1,
getOmSnapshotIntMetrics().getNumSnapshotPurges());
assertEquals(initialSnapshotPurgeFailCount,
getOmSnapshotIntMetrics().getNumSnapshotPurgeFails());
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]