slfan1989 commented on code in PR #10284:
URL: https://github.com/apache/ozone/pull/10284#discussion_r3252605071


##########
hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/diskbalancer/DiskBalancerService.java:
##########
@@ -332,17 +332,33 @@ private synchronized DiskBalancerInfo 
readDiskBalancerInfoFile(
   private synchronized void writeDiskBalancerInfoTo(
       DiskBalancerInfo diskBalancerInfo, File path)
       throws IOException {
-    if (path.exists()) {
-      if (!path.delete() || !path.createNewFile()) {
-        throw new IOException("Unable to overwrite the DiskBalancerInfo 
file.");
-      }
-    } else {
-      if (!path.getParentFile().exists() &&
-          !path.getParentFile().mkdirs()) {
-        throw new IOException("Unable to create DiskBalancerInfo 
directories.");
-      }
+    writeDiskBalancerInfoFile(diskBalancerInfo, path);
+  }
+
+  @VisibleForTesting
+  static void writeDiskBalancerInfoFile(DiskBalancerInfo diskBalancerInfo,

Review Comment:
   Not only exception handling. The main purpose is to remove the previous 
non-atomic delete/createNewFile step before writing diskBalancer.info.
   
   The actual atomic write is already handled by `DiskBalancerYaml` -> 
`YamlUtils.dump()` -> `AtomicFileOutputStream`. This PR keeps that path, 
creates the parent directory when needed, and wraps directory/write failures 
with clearer error messages.
   



-- 
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]

Reply via email to