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

Davis Zhang commented on HUDI-7483:
-----------------------------------

PR to repro, check it out and follow intellij config to get a repro: 
https://github.com/Davis-Zhang-Onehouse/hudi-oss/pull/new/HUDI-7483

What the test does is:
- Delta commit sequentially for 3 times.
- Fire 3 threads and ideal execution order is
Compaction being scheduled. (compaction.requested)
client2.scheduleTableService(compactionTimeStamp, Option.empty(), 
TableServiceType.COMPACT);
Cleaning being scheduled (I did not see clean.requested as there is no 
compaction, so no old file slice to clean up)
client3.scheduleTableService(cleanCommitTime, Option.empty(), 
TableServiceType.CLEAN);
Upsert kicks in for MOR. We expect concurrent modification exception.

Happy case timeline:
- compaction.requested
- deltacommit.requested
- deltacommit.inflight
exception is thrown in future 1 object

Unhappy case timeline:
- compaction.requested
- deltacommit.requested
- deltacommit.inflight
- deltacommit.completed <-- no exception, upsert is completed

I have attached the table folder for both pass/error cases. I need guidance on 
how to verify if the error case upsert does not conflict on file slice that 
compaction works on.

I compared the compaction and delta commit plan between the 2, nothing 
suspicious.

> TestHoodieClientMultiWriter.testMultiWriterWithAsyncTableServicesWithConflict
> -----------------------------------------------------------------------------
>
>                 Key: HUDI-7483
>                 URL: https://issues.apache.org/jira/browse/HUDI-7483
>             Project: Apache Hudi
>          Issue Type: Sub-task
>            Reporter: Lin Liu
>            Priority: Major
>         Attachments: 7483.zip
>
>
> https://dev.azure.com/apache-hudi-ci-org/apache-hudi-ci/_build/results?buildId=22801&view=logs&j=600e7de6-e133-5e69-e615-50ee129b3c08&t=bbbd7bcc-ae73-56b8-887a-cd2d6deaafc7&s=859b8d9a-8fd6-5a5c-6f5e-f84f1990894e
> {code:java}
> [ERROR] Tests run: 29, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 
> 307.331 s <<< FAILURE! - in org.apache.hudi.client.TestHoodieClientMultiWriter
> [ERROR] testMultiWriterWithAsyncTableServicesWithConflict{HoodieTableType, 
> Class, ConflictResolutionStrategy}[6]  Time elapsed: 16.083 s  <<< ERROR!
> java.util.concurrent.ExecutionException: org.opentest4j.AssertionFailedError: 
> Expected org.apache.hudi.exception.HoodieWriteConflictException to be thrown, 
> but nothing was thrown.
>       at java.util.concurrent.FutureTask.report(FutureTask.java:122)
>       at java.util.concurrent.FutureTask.get(FutureTask.java:192)
>       at 
> org.apache.hudi.client.TestHoodieClientMultiWriter.testMultiWriterWithAsyncTableServicesWithConflict(TestHoodieClientMultiWriter.java:565)
> {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to