This is an automated email from the ASF dual-hosted git repository.

danny0405 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hudi.git


The following commit(s) were added to refs/heads/master by this push:
     new 35af64db466 [Minor] Throw exceptions when cleaner/compactor fail 
(#10108)
35af64db466 is described below

commit 35af64db46668115dc7c9cd9b05844819cb1157e
Author: Shawn Chang <[email protected]>
AuthorDate: Wed Nov 15 18:36:42 2023 -0800

    [Minor] Throw exceptions when cleaner/compactor fail (#10108)
    
    Co-authored-by: Shawn Chang <[email protected]>
---
 .../main/java/org/apache/hudi/utilities/HoodieCleaner.java  | 13 +++----------
 .../java/org/apache/hudi/utilities/HoodieCompactor.java     | 13 ++++++++-----
 2 files changed, 11 insertions(+), 15 deletions(-)

diff --git 
a/hudi-utilities/src/main/java/org/apache/hudi/utilities/HoodieCleaner.java 
b/hudi-utilities/src/main/java/org/apache/hudi/utilities/HoodieCleaner.java
index 53b80e55b25..49eeeeaed0b 100644
--- a/hudi-utilities/src/main/java/org/apache/hudi/utilities/HoodieCleaner.java
+++ b/hudi-utilities/src/main/java/org/apache/hudi/utilities/HoodieCleaner.java
@@ -26,6 +26,7 @@ import org.apache.hudi.config.HoodieWriteConfig;
 import com.beust.jcommander.JCommander;
 import com.beust.jcommander.Parameter;
 import org.apache.hadoop.fs.Path;
+import org.apache.hudi.exception.HoodieException;
 import org.apache.spark.api.java.JavaSparkContext;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -103,28 +104,20 @@ public class HoodieCleaner {
     JCommander cmd = new JCommander(cfg, null, args);
     if (cfg.help || args.length == 0) {
       cmd.usage();
-      System.exit(1);
+      throw new HoodieException("Failed to run cleaning for " + cfg.basePath);
     }
 
     String dirName = new Path(cfg.basePath).getName();
     JavaSparkContext jssc = UtilHelpers.buildSparkContext("hoodie-cleaner-" + 
dirName, cfg.sparkMaster);
-    boolean success = true;
 
     try {
       new HoodieCleaner(cfg, jssc).run();
     } catch (Throwable throwable) {
-      success = false;
-      LOG.error("Failed to run cleaning for " + cfg.basePath, throwable);
+      throw new HoodieException("Failed to run cleaning for " + cfg.basePath, 
throwable);
     } finally {
       jssc.stop();
     }
 
-    if (!success) {
-      // Return a non-zero exit code to properly notify any resource manager
-      // that cleaning was not successful
-      System.exit(1);
-    }
-
     LOG.info("Cleaner ran successfully");
   }
 }
diff --git 
a/hudi-utilities/src/main/java/org/apache/hudi/utilities/HoodieCompactor.java 
b/hudi-utilities/src/main/java/org/apache/hudi/utilities/HoodieCompactor.java
index 9b03cb7a724..c8bdf0da3a0 100644
--- 
a/hudi-utilities/src/main/java/org/apache/hudi/utilities/HoodieCompactor.java
+++ 
b/hudi-utilities/src/main/java/org/apache/hudi/utilities/HoodieCompactor.java
@@ -29,6 +29,7 @@ import org.apache.hudi.common.table.timeline.HoodieInstant;
 import org.apache.hudi.common.util.Option;
 import org.apache.hudi.common.util.StringUtils;
 import org.apache.hudi.config.HoodieCleanConfig;
+import org.apache.hudi.exception.HoodieException;
 import org.apache.hudi.table.action.HoodieWriteMetadata;
 import 
org.apache.hudi.table.action.compact.strategy.LogFileSizeBasedCompactionStrategy;
 
@@ -168,18 +169,20 @@ public class HoodieCompactor {
     JCommander cmd = new JCommander(cfg, null, args);
     if (cfg.help || args.length == 0) {
       cmd.usage();
-      System.exit(1);
+      throw new HoodieException("Fail to run compaction for " + cfg.tableName 
+ ", return code: " + 1);
     }
     final JavaSparkContext jsc = UtilHelpers.buildSparkContext("compactor-" + 
cfg.tableName, cfg.sparkMaster, cfg.sparkMemory);
     int ret = 0;
     try {
-      HoodieCompactor compactor = new HoodieCompactor(jsc, cfg);
-      ret = compactor.compact(cfg.retry);
+      ret = new HoodieCompactor(jsc, cfg).compact(cfg.retry);
     } catch (Throwable throwable) {
-      LOG.error("Fail to run compaction for " + cfg.tableName, throwable);
+      throw new HoodieException("Fail to run compaction for " + cfg.tableName 
+ ", return code: " + ret, throwable);
     } finally {
       jsc.stop();
-      System.exit(ret);
+    }
+
+    if (ret != 0) {
+      throw new HoodieException("Fail to run compaction for " + cfg.tableName 
+ ", return code: " + ret);
     }
   }
 

Reply via email to