mvanhorn commented on PR #10625: URL: https://github.com/apache/paimon/pull/10625#issuecomment-6297064966
Thanks for the two interleavings. Both are fixed in b995317, which also merges in current master. - Each expiration run now writes its own marker under expire-marker/<snapshotId>/<runId> and deletes only that one, in the cleanup path too. A creator rolls its tag back while any run's marker is still there, so in your three-JVM case B can no longer clear A's fence. - createTag now deletes the tag it just published when the post-write check fails for any reason, IOException included, and rethrows the original error, so a retry with ignoreIfExists=true does not find a leftover tag. New tests: testExpireKeepsAnotherExpirerFence and testCreateTagRollsBackWhenMarkerCheckFails. ExpireSnapshotsTest, TagAutoManagerTest, TagManagerTest and TagTest pass on JDK 11 (69 tests), and spotless and checkstyle pass on paimon-core. One limit: an expirer that crashes before its cleanup leaves its marker behind, and that marker keeps fencing the snapshot until it is removed. -- 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]
