[HUDI-1744] rollback fails on mor table when the partition path hasn't any files (#2749)
Co-authored-by: lrz <lrz@lrzdeMacBook-Pro.local>
This commit is contained in:
@@ -112,6 +112,9 @@ public class RollbackUtils {
|
||||
String commit = instantToRollback.getTimestamp();
|
||||
HoodieWriteConfig config = table.getConfig();
|
||||
List<String> partitions = FSUtils.getAllPartitionPaths(context, config.getMetadataConfig(), table.getMetaClient().getBasePath());
|
||||
if (partitions.isEmpty()) {
|
||||
return new ArrayList<>();
|
||||
}
|
||||
int sparkPartitions = Math.max(Math.min(partitions.size(), config.getRollbackParallelism()), 1);
|
||||
context.setJobStatus(RollbackUtils.class.getSimpleName(), "Generate all rollback requests");
|
||||
return context.flatMap(partitions, partitionPath -> {
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
package org.apache.hudi.table.action.rollback;
|
||||
|
||||
import org.apache.hudi.avro.model.HoodieRollbackPartitionMetadata;
|
||||
import org.apache.hudi.client.SparkRDDWriteClient;
|
||||
import org.apache.hudi.common.model.FileSlice;
|
||||
import org.apache.hudi.common.model.HoodieFileGroup;
|
||||
import org.apache.hudi.common.model.HoodieLogFile;
|
||||
@@ -155,4 +156,19 @@ public class TestMergeOnReadRollbackActionExecutor extends HoodieClientRollbackT
|
||||
true);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Test Cases for rollbacking when has not base file.
|
||||
*/
|
||||
@Test
|
||||
public void testRollbackWhenFirstCommitFail() throws Exception {
|
||||
|
||||
HoodieWriteConfig config = HoodieWriteConfig.newBuilder().withPath(basePath).build();
|
||||
|
||||
try (SparkRDDWriteClient client = getHoodieWriteClient(config)) {
|
||||
client.startCommitWithTime("001");
|
||||
client.insert(jsc.emptyRDD(), "001");
|
||||
client.rollback("001");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user