From 5c204f14161be0afd3eb1d377305ed0f6ed87546 Mon Sep 17 00:00:00 2001 From: Shawn Chang <42792772+CTTY@users.noreply.github.com> Date: Mon, 20 Jun 2022 19:54:12 -0700 Subject: [PATCH] [HUDI-4177] Fix hudi-cli rollback with rollbackUsingMarkers method call (#5734) * Fix hudi-cli rollback with rollbackUsingMarkers method call * Add test for hudi-cli rollbackUsingMarkers Co-authored-by: Shawn Chang --- .../org/apache/hudi/cli/commands/SparkMain.java | 2 +- .../hudi/cli/integ/ITTestCommitsCommand.java | 17 +++++++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) 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 ae4f9c660..413574535 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 @@ public class SparkMain { } 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 5345df952..4e1be39e4 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 class ITTestCommitsCommand extends HoodieCLIIntegrationTestBase { 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."); } }