[ 
https://issues.apache.org/jira/browse/HUDI-4112?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17538147#comment-17538147
 ] 

sivabalan narayanan commented on HUDI-4112:
-------------------------------------------

{code:java}
Exception in thread "main" org.apache.hudi.exception.HoodieRestoreException: 
Failed to restore to 20220426091934506
        at 
org.apache.hudi.client.BaseHoodieWriteClient.restoreToInstant(BaseHoodieWriteClient.java:728)
        at 
com.infinilake.sparkJobs.SavepointRestoreJob.main(SavepointRestoreJob.java:56)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at 
org.apache.spark.deploy.JavaMainApplication.start(SparkApplication.scala:52)
        at 
org.apache.spark.deploy.SparkSubmit.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:955)
        at 
org.apache.spark.deploy.SparkSubmit.doRunMain$1(SparkSubmit.scala:180)
        at org.apache.spark.deploy.SparkSubmit.submit(SparkSubmit.scala:203)
        at org.apache.spark.deploy.SparkSubmit.doSubmit(SparkSubmit.scala:90)
        at 
org.apache.spark.deploy.SparkSubmit$$anon$2.doSubmit(SparkSubmit.scala:1043)
        at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:1052)
        at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)
Caused by: org.apache.hudi.exception.HoodieMetadataException: The instant 
[20220426192933855__deltacommit__COMPLETED] required to sync rollback of 
20220426192933855 has been archived
        at 
org.apache.hudi.metadata.HoodieTableMetadataUtil.lambda$processRollbackMetadata$14(HoodieTableMetadataUtil.java:538)
        at java.util.HashMap$Values.forEach(HashMap.java:982)
        at 
java.util.Collections$UnmodifiableCollection.forEach(Collections.java:1082)
        at 
org.apache.hudi.metadata.HoodieTableMetadataUtil.processRollbackMetadata(HoodieTableMetadataUtil.java:515)
        at 
org.apache.hudi.metadata.HoodieTableMetadataUtil.lambda$null$8(HoodieTableMetadataUtil.java:446)
        at java.util.Collections$SingletonList.forEach(Collections.java:4824)
        at 
org.apache.hudi.metadata.HoodieTableMetadataUtil.lambda$processRestoreMetadata$9(HoodieTableMetadataUtil.java:446)
        at java.util.HashMap$Values.forEach(HashMap.java:982)
        at 
java.util.Collections$UnmodifiableCollection.forEach(Collections.java:1082)
        at 
org.apache.hudi.metadata.HoodieTableMetadataUtil.processRestoreMetadata(HoodieTableMetadataUtil.java:446)
        at 
org.apache.hudi.metadata.HoodieTableMetadataUtil.convertMetadataToRecords(HoodieTableMetadataUtil.java:416)
        at 
org.apache.hudi.metadata.HoodieBackedTableMetadataWriter.lambda$update$7(HoodieBackedTableMetadataWriter.java:706)
        at 
org.apache.hudi.metadata.HoodieBackedTableMetadataWriter.processAndCommit(HoodieBackedTableMetadataWriter.java:669)
        at 
org.apache.hudi.metadata.HoodieBackedTableMetadataWriter.update(HoodieBackedTableMetadataWriter.java:706)
        at 
org.apache.hudi.table.action.BaseActionExecutor.lambda$writeTableMetadata$3(BaseActionExecutor.java:85)
        at org.apache.hudi.common.util.Option.ifPresent(Option.java:97)
        at 
org.apache.hudi.table.action.BaseActionExecutor.writeTableMetadata(BaseActionExecutor.java:85)
        at 
org.apache.hudi.table.action.restore.BaseRestoreActionExecutor.writeToMetadata(BaseRestoreActionExecutor.java:154)
        at 
org.apache.hudi.table.action.restore.BaseRestoreActionExecutor.finishRestore(BaseRestoreActionExecutor.java:129)
        at 
org.apache.hudi.table.action.restore.BaseRestoreActionExecutor.execute(BaseRestoreActionExecutor.java:95)
        at 
org.apache.hudi.table.HoodieSparkMergeOnReadTable.restore(HoodieSparkMergeOnReadTable.java:175)
        at 
org.apache.hudi.client.BaseHoodieWriteClient.restoreToInstant(BaseHoodieWriteClient.java:714){code}
{code:java}
Caused by: org.apache.hudi.exception.HoodieMetadataException: The instant 
[20220426192933855__deltacommit__COMPLETED] required to sync rollback of 
20220426192933855 has been archived {code}

> Relax constraint in metadata table that rollback of a commit that got 
> archived in MDT throws exception
> ------------------------------------------------------------------------------------------------------
>
>                 Key: HUDI-4112
>                 URL: https://issues.apache.org/jira/browse/HUDI-4112
>             Project: Apache Hudi
>          Issue Type: Bug
>          Components: metadata
>            Reporter: sivabalan narayanan
>            Priority: Blocker
>             Fix For: 0.11.1
>
>
> when we are trying to rollback a commit, and if the commit it archived in 
> MDT, when this rollback is getting applied to MDT, we throw exception. 
>  
> excerpt from HoodieTableMetadataUtil.java
>  
> {code:java}
> HoodieInstant syncedInstant = new HoodieInstant(false, 
> HoodieTimeline.DELTA_COMMIT_ACTION, instantToRollback);
> if 
> (metadataTableTimeline.getCommitsTimeline().isBeforeTimelineStarts(syncedInstant.getTimestamp()))
>  {
>   throw new HoodieMetadataException(String.format("The instant %s required to 
> sync rollback of %s has been archived",
>       syncedInstant, instantToRollback));
> }
> shouldSkip = !metadataTableTimeline.containsInstant(syncedInstant);
> if (!hasNonZeroRollbackLogFiles && shouldSkip) {
>   LOG.info(String.format("Skipping syncing of rollbackMetadata at %s, since 
> this instant was never committed to Metadata Table",
>       instantToRollback));
>   return;
> } {code}
>  
> This is very much valid in case of restore operation. 
> C1, C2, C3, C4, C5, C6. 
> C2 savepointed. 
> but MDT could have archived C2(aggressive archival commits) since all C1 to 
> C6 are committed. So, when we trigger restore to C1, it will invoke rollback 
> of C6, C5... C2. 
> So, with savepoint and restore flow, this is a valid scenario and we need to 
> relax the constraint. 
>  
>  



--
This message was sent by Atlassian Jira
(v8.20.7#820007)

Reply via email to