danny0405 commented on code in PR #13473:
URL: https://github.com/apache/hudi/pull/13473#discussion_r2288224453


##########
hudi-common/src/main/java/org/apache/hudi/common/table/HoodieTableConfig.java:
##########
@@ -504,6 +505,7 @@ public static void recover(HoodieStorage storage, 
StoragePath metadataFolder) th
   private static void modify(HoodieStorage storage, StoragePath 
metadataFolder, Properties modifyProps, BiConsumer<Properties, Properties> 
modifyFn) {
     StoragePath cfgPath = new StoragePath(metadataFolder, 
HOODIE_PROPERTIES_FILE);
     StoragePath backupCfgPath = new StoragePath(metadataFolder, 
HOODIE_PROPERTIES_FILE_BACKUP);
+    StoragePath tempCfgPath = new StoragePath(metadataFolder, 
HOODIE_PROPERTIES_FILE + HOODIE_TEMP_FILE_SUFFIX);

Review Comment:
   Here is the fix for it:
   
   ```java
   public static void recoverIfNeeded(HoodieStorage storage, StoragePath 
cfgPath,
                                        StoragePath backupCfgPath) throws 
IOException {
       boolean needCopy = false;
       if (!storage.exists(cfgPath)) {
         needCopy = true;
       } else {
         Properties props = new Properties();
         try (InputStream in = storage.open(cfgPath)) {
           props.load(in);
           if (!props.containsKey(TABLE_CHECKSUM.key()) || 
!HoodieTableConfig.validateChecksum(props)) {
             storage.deleteFile(cfgPath);
             // the cfg file is invalid
             needCopy = true;
           }
         }
       }
       if (needCopy) {
         // copy over from backup
         try (InputStream in = storage.open(backupCfgPath);
              OutputStream out = storage.create(cfgPath, false)) {
           FileIOUtils.copy(in, out);
         }
       }
       // regardless, we don't need the backup anymore.
       storage.deleteFile(backupCfgPath);
     }
   ```



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

Reply via email to