This is an automated email from the ASF dual-hosted git repository. sivabalan pushed a commit to branch release-0.10.1 in repository https://gitbox.apache.org/repos/asf/hudi.git
commit 101be1a0139ad550a509cf3d2c2a101ea62930b4 Author: Danny Chan <[email protected]> AuthorDate: Mon Jan 17 18:18:45 2022 +0800 [HUDI-3257] Excluding clustering instants from pending rollback info (#4616) --- .../org/apache/hudi/client/AbstractHoodieWriteClient.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/client/AbstractHoodieWriteClient.java b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/client/AbstractHoodieWriteClient.java index 76b10fd..8da1db5 100644 --- a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/client/AbstractHoodieWriteClient.java +++ b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/client/AbstractHoodieWriteClient.java @@ -906,13 +906,17 @@ public abstract class AbstractHoodieWriteClient<T extends HoodieRecordPayload, I protected Map<String, Option<HoodiePendingRollbackInfo>> getPendingRollbackInfos(HoodieTableMetaClient metaClient) { List<HoodieInstant> instants = metaClient.getActiveTimeline().filterPendingRollbackTimeline().getInstants().collect(Collectors.toList()); Map<String, Option<HoodiePendingRollbackInfo>> infoMap = new HashMap<>(); - HoodieTimeline pendingCompactionTimeline = metaClient.getActiveTimeline().filterPendingCompactionTimeline(); for (HoodieInstant instant : instants) { try { HoodieRollbackPlan rollbackPlan = RollbackUtils.getRollbackPlan(metaClient, instant); - String instantToRollback = rollbackPlan.getInstantToRollback().getCommitTime(); - if (!pendingCompactionTimeline.containsInstant(instantToRollback)) { - infoMap.putIfAbsent(instantToRollback, Option.of(new HoodiePendingRollbackInfo(instant, rollbackPlan))); + String action = rollbackPlan.getInstantToRollback().getAction(); + if (!HoodieTimeline.COMPACTION_ACTION.equals(action)) { + boolean isClustering = HoodieTimeline.REPLACE_COMMIT_ACTION.equals(action) + && ClusteringUtils.getClusteringPlan(metaClient, instant).isPresent(); + if (!isClustering) { + String instantToRollback = rollbackPlan.getInstantToRollback().getCommitTime(); + infoMap.putIfAbsent(instantToRollback, Option.of(new HoodiePendingRollbackInfo(instant, rollbackPlan))); + } } } catch (IOException e) { LOG.warn("Fetching rollback plan failed for " + infoMap + ", skip the plan", e);
