mxm opened a new pull request, #17038:
URL: https://github.com/apache/iceberg/pull/17038

   This PR fixes the CI test flakiness seen in:
   
   ```
   TestConvertEqualityDeletesE2E > testConvertEqualityDeletesE2E(String) > [1] 
staging FAILED
       org.opentest4j.AssertionFailedError:
       expected: 2L
        but was: 1L
           at 
app//org.apache.iceberg.flink.maintenance.api.TestConvertEqualityDeletesE2E.lambda$testConvertEqualityDeletesE2E$1(TestConvertEqualityDeletesE2E.java:127)
   ```
   e.g.: 
https://github.com/apache/iceberg/actions/runs/28499724055/job/84473933155?pr=16293
   
   Flink's table maintenance framework maintains a lock to prevent concurrent 
execution of maintenance tasks. The component responsible for removing the lock 
(LockRemover) releases the task lock once a watermark reaches it past the 
task's start timestamp.
   
   EqualityConvertPlanner emits phase watermarks in the middle of its 
execution, and the committer forwarded them, so the lock was released before 
the run completed. The maintenance framework then started a next cycle 
concurrently, and both re-processed the same uncommitted staging snapshot. The 
overlapping commits conflicted, and one advanced its commit marker while 
dropping its deletion vector, causing the test flakiness.
   
   The solution is to forward watermarks from the committer only after it 
finishes the conversion cycle, to ensure mutual exclusive execution of the 
maintenance tasks.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to