From 1d3b9413c351b553d530b1c319173bfaa7019704 Mon Sep 17 00:00:00 2001 From: Shawn Chang Date: Thu, 19 May 2022 12:55:20 -0700 Subject: [PATCH 1/2] Fix hudi-cli rollback with rollbackUsingMarkers method call --- .../src/main/java/org/apache/hudi/cli/commands/SparkMain.java | 2 +- 1 file changed, 1 insertion(+), 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 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; From d0a0775ad184f254cb2eee3a0a0e4f753a6c303a Mon Sep 17 00:00:00 2001 From: Shawn Chang Date: Mon, 13 Jun 2022 13:18:13 -0700 Subject: [PATCH 2/2] Add test for hudi-cli rollbackUsingMarkers --- .../hudi/cli/integ/ITTestCommitsCommand.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) 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."); } }