From 0b032b2761fcc23a3bcedaf654431635ec7e7f03 Mon Sep 17 00:00:00 2001 From: Nishith Agarwal Date: Mon, 2 Sep 2019 10:20:41 -0700 Subject: [PATCH] Fix requested eompaction rollback during restore command --- .../java/org/apache/hudi/HoodieWriteClient.java | 16 ++++++---------- .../apache/hudi/table/TestMergeOnReadTable.java | 7 ++++++- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/hudi-client/src/main/java/org/apache/hudi/HoodieWriteClient.java b/hudi-client/src/main/java/org/apache/hudi/HoodieWriteClient.java index d81ecaff5..e6b3152be 100644 --- a/hudi-client/src/main/java/org/apache/hudi/HoodieWriteClient.java +++ b/hudi-client/src/main/java/org/apache/hudi/HoodieWriteClient.java @@ -808,16 +808,12 @@ public class HoodieWriteClient extends AbstractHo instantsToStats.put(instant.getTimestamp(), statsForInstant); break; case HoodieTimeline.COMPACTION_ACTION: - if (instant.isRequested()) { - // TODO : Get file status and create a rollback stat and file - // TODO : Delete the .aux files along with the instant file, okay for now since the archival process will - // delete these files when it does not see a corresponding instant file under .hoodie - deleteRequestedCompaction(instant.getTimestamp()); - logger.info("Deleted pending scheduled compaction " + instant.getTimestamp()); - } else { - List statsForCompaction = doRollbackAndGetStats(instant.getTimestamp()); - instantsToStats.put(instant.getTimestamp(), statsForCompaction); - } + // TODO : Get file status and create a rollback stat and file + // TODO : Delete the .aux files along with the instant file, okay for now since the archival process will + // delete these files when it does not see a corresponding instant file under .hoodie + List statsForCompaction = doRollbackAndGetStats(instant.getTimestamp()); + instantsToStats.put(instant.getTimestamp(), statsForCompaction); + logger.info("Deleted compaction instant " + instant); break; default: throw new IllegalArgumentException("invalid action name " + instant.getAction()); diff --git a/hudi-client/src/test/java/org/apache/hudi/table/TestMergeOnReadTable.java b/hudi-client/src/test/java/org/apache/hudi/table/TestMergeOnReadTable.java index 2b80125a1..a4789e9f7 100644 --- a/hudi-client/src/test/java/org/apache/hudi/table/TestMergeOnReadTable.java +++ b/hudi-client/src/test/java/org/apache/hudi/table/TestMergeOnReadTable.java @@ -680,6 +680,11 @@ public class TestMergeOnReadTable extends HoodieClientTestHarness { List fileGroups = ((HoodieTableFileSystemView) rtView).getAllFileGroups().collect(Collectors .toList()); assertTrue(fileGroups.isEmpty()); + + // make sure there are no log files remaining + assertTrue(((HoodieTableFileSystemView) rtView).getAllFileGroups().filter(fileGroup -> fileGroup + .getAllRawFileSlices().filter(f -> f.getLogFiles().count() == 0).count() == 0).count() == 0L); + } } @@ -1259,4 +1264,4 @@ public class TestMergeOnReadTable extends HoodieClientTestHarness { assertFalse("Errors found in write of " + status.getFileId(), status.hasErrors()); } } -} +} \ No newline at end of file