sreejasahithi commented on code in PR #10565:
URL: https://github.com/apache/ozone/pull/10565#discussion_r3449726519
##########
hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/keyvalue/TestKeyValueContainer.java:
##########
@@ -759,6 +759,40 @@ public void testReportOfUnhealthyContainer(
assertNotNull(keyValueContainer.getContainerReport());
}
+ /**
+ * When a container's metadata directory is missing (MISSING_METADATA_DIR),
marking the container
+ * UNHEALTHY must succeed and persist the state to disk. Previously the call
failed with
+ * StorageContainerException because writeToContainerFile tried to create a
temp file inside
+ * the missing directory.
+ */
+ @ContainerTestVersionInfo.ContainerTest
+ public void testMarkUnhealthyWithMissingMetadataDir(ContainerTestVersionInfo
versionInfo) throws Exception {
+ init(versionInfo);
+ keyValueContainer.create(volumeSet, volumeChoosingPolicy, scmId);
+
+ // Simulate MISSING_METADATA_DIR: delete the entire metadata directory.
+ File metadataDir = new File(keyValueContainerData.getMetadataPath());
+ assertTrue(metadataDir.exists(), "Metadata dir should exist before
corruption");
+ FileUtils.deleteDirectory(metadataDir);
Review Comment:
nit: you could use MISSING_METADATA_DIR.applyTo(keyValueContainer) instead
because it is already used in scanner tests (TestKeyValueContainerCheck).
Reusing it keeps corruption simulation consistent and avoids duplicating delete
logic.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]