From 234bcdc0eda49616e3ba674ba3f39dfddfb94cae Mon Sep 17 00:00:00 2001 From: Sivabalan Narayanan Date: Wed, 3 Aug 2022 06:20:38 +0800 Subject: [PATCH] [HUDI-4501] Throwing exception when restore is attempted with hoodie.arhive.beyond.savepoint is enabled (#6239) (cherry picked from commit cdbd1561e0df1f66d582aadd9d62b30a16fb04b0) --- .../TestHoodieClientOnCopyOnWriteStorage.java | 24 ++++++++++++++----- 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/hudi-client/hudi-spark-client/src/test/java/org/apache/hudi/client/functional/TestHoodieClientOnCopyOnWriteStorage.java b/hudi-client/hudi-spark-client/src/test/java/org/apache/hudi/client/functional/TestHoodieClientOnCopyOnWriteStorage.java index 3f9bda49e8ffe..28108b793aca8 100644 --- a/hudi-client/hudi-spark-client/src/test/java/org/apache/hudi/client/functional/TestHoodieClientOnCopyOnWriteStorage.java +++ b/hudi-client/hudi-spark-client/src/test/java/org/apache/hudi/client/functional/TestHoodieClientOnCopyOnWriteStorage.java @@ -72,18 +72,19 @@ import org.apache.hudi.common.util.StringUtils; import org.apache.hudi.common.util.collection.Pair; import org.apache.hudi.config.HoodieArchivalConfig; -import org.apache.hudi.config.HoodieCleanConfig; -import org.apache.hudi.config.HoodieClusteringConfig; import org.apache.hudi.config.HoodieCompactionConfig; import org.apache.hudi.config.HoodieIndexConfig; -import org.apache.hudi.config.HoodiePreCommitValidatorConfig; +import org.apache.hudi.config.HoodieClusteringConfig; import org.apache.hudi.config.HoodieStorageConfig; import org.apache.hudi.config.HoodieWriteConfig; +import org.apache.hudi.config.HoodiePreCommitValidatorConfig; +import org.apache.hudi.config.HoodieCleanConfig; import org.apache.hudi.data.HoodieJavaRDD; import org.apache.hudi.exception.HoodieCommitException; import org.apache.hudi.exception.HoodieCorruptedDataException; import org.apache.hudi.exception.HoodieIOException; import org.apache.hudi.exception.HoodieInsertException; +import org.apache.hudi.exception.HoodieRollbackException; import org.apache.hudi.exception.HoodieUpsertException; import org.apache.hudi.exception.HoodieValidationException; import org.apache.hudi.execution.bulkinsert.RDDCustomColumnsSortPartitioner; @@ -2296,9 +2297,20 @@ private void testRollbackAfterConsistencyCheckFailureUsingFileList(boolean rollb "With optimistic CG, first commit should succeed. commit file should be present"); // Marker directory must be removed after rollback assertFalse(metaClient.getFs().exists(new Path(metaClient.getMarkerFolderPath(instantTime)))); - client.rollback(instantTime); - assertFalse(testTable.commitExists(instantTime), - "After explicit rollback, commit file should not be present"); + if (rollbackUsingMarkers) { + // rollback of a completed commit should fail if marked based rollback is used. + try { + client.rollback(instantTime); + fail("Rollback of completed commit should throw exception"); + } catch (HoodieRollbackException e) { + // ignore + } + } else { + // rollback of a completed commit should succeed if using list based rollback + client.rollback(instantTime); + assertFalse(testTable.commitExists(instantTime), + "After explicit rollback, commit file should not be present"); + } } }