diff --git a/hudi-cli/src/main/java/org/apache/hudi/cli/commands/SparkMain.java b/hudi-cli/src/main/java/org/apache/hudi/cli/commands/SparkMain.java index ae4f9c660053d..41357453510da 100644 --- a/hudi-cli/src/main/java/org/apache/hudi/cli/commands/SparkMain.java +++ b/hudi-cli/src/main/java/org/apache/hudi/cli/commands/SparkMain.java @@ -451,7 +451,7 @@ private static int doBootstrap(JavaSparkContext jsc, String tableName, String ta } private static int rollback(JavaSparkContext jsc, String instantTime, String basePath, Boolean rollbackUsingMarkers) throws Exception { - SparkRDDWriteClient client = createHoodieClient(jsc, basePath, rollbackUsingMarkers); + SparkRDDWriteClient client = createHoodieClient(jsc, basePath, rollbackUsingMarkers, false); if (client.rollback(instantTime)) { LOG.info(String.format("The commit \"%s\" rolled back.", instantTime)); return 0; diff --git a/hudi-cli/src/test/java/org/apache/hudi/cli/integ/ITTestCommitsCommand.java b/hudi-cli/src/test/java/org/apache/hudi/cli/integ/ITTestCommitsCommand.java index 5345df9528bcf..4e1be39e480dd 100644 --- a/hudi-cli/src/test/java/org/apache/hudi/cli/integ/ITTestCommitsCommand.java +++ b/hudi-cli/src/test/java/org/apache/hudi/cli/integ/ITTestCommitsCommand.java @@ -125,5 +125,22 @@ public void testRollbackCommit() throws Exception { HoodieActiveTimeline timeline2 = metaClient.reloadActiveTimeline(); assertEquals(1, timeline2.getCommitsTimeline().countInstants(), "There should have 1 instants."); + + // rollback with rollbackUsingMarkers==false + CommandResult cr3 = getShell().executeCommand( + String.format("commit rollback --commit %s --rollbackUsingMarkers false --sparkMaster %s --sparkMemory %s", + "100", "local", "4G")); + + assertAll("Command run failed", + () -> assertTrue(cr3.isSuccess()), + () -> assertEquals("Commit 100 rolled back", cr3.getResult().toString())); + + metaClient = HoodieTableMetaClient.reload(HoodieCLI.getTableMetaClient()); + + HoodieActiveTimeline rollbackTimeline3 = new RollbacksCommand.RollbackTimeline(metaClient); + assertEquals(3, rollbackTimeline3.getRollbackTimeline().countInstants(), "There should have 3 rollback instant."); + + HoodieActiveTimeline timeline3 = metaClient.reloadActiveTimeline(); + assertEquals(0, timeline3.getCommitsTimeline().countInstants(), "There should have 0 instants."); } }