sumitagrawl commented on code in PR #8693: URL: https://github.com/apache/ozone/pull/8693#discussion_r2225873929
########## hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/keyvalue/helpers/KeyValueContainerUtil.java: ########## @@ -129,6 +133,15 @@ public static void removeContainer( KeyValueContainerData containerData, ConfigurationSource conf) throws IOException { Preconditions.checkNotNull(containerData); + Review Comment: Here we are having Unit Test, same thing can be achieved via Mockito for static mock ########## hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/diskbalancer/DiskBalancerService.java: ########## @@ -468,15 +471,36 @@ public BackgroundTaskResult call() { boolean destVolumeIncreased = false; Path diskBalancerTmpDir = null, diskBalancerDestDir = null; long containerSize = containerData.getBytesUsed(); + String originalContainerChecksum = containerData.getContainerFileChecksum(); try { + // Step 1: Copy container to new Volume's tmp Dir diskBalancerTmpDir = destVolume.getTmpDir().toPath() .resolve(DISK_BALANCER_DIR).resolve(String.valueOf(containerId)); - - // Copy container to new Volume's tmp Dir ozoneContainer.getController().copyContainer(containerData, diskBalancerTmpDir); - // Move container directory to final place on new volume + // Step 2: verify checksum and Transition Temp container to Temp C1-RECOVERING + File tempContainerFile = ContainerUtils.getContainerFile( + diskBalancerTmpDir.toFile()); + if (!tempContainerFile.exists()) { + throw new IOException("ContainerFile for container " + containerId + + " doesn't exist in temp directory " + + tempContainerFile.getAbsolutePath()); + } + ContainerData tempContainerData = ContainerDataYaml + .readContainerFile(tempContainerFile); + String copiedContainerChecksum = tempContainerData.getContainerFileChecksum(); + if (!originalContainerChecksum.equals(copiedContainerChecksum)) { + throw new IOException("Container checksum mismatch for container " Review Comment: we should delete the temp container -- 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: issues-unsubscr...@ozone.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: issues-unsubscr...@ozone.apache.org For additional commands, e-mail: issues-h...@ozone.apache.org