Davis-Zhang-Onehouse opened a new pull request, #19726: URL: https://github.com/apache/hudi/pull/19726
### Describe the issue this Pull Request addresses closes #19725 HUDI-7494 taught the meta-sync clients to persist and read `last_commit_completion_time_sync` so incremental sync can register a commit that completes after the instant-time watermark has already moved past it. The mechanism has no test coverage on the sync clients: nothing fails if the completion watermark stops being written, is computed with the wrong ordering, or is never consulted on read. Separately, the Glue test fixture writes its seed commit into `.hoodie/` while the version-8 timeline reads `.hoodie/timeline/`, so every Glue test has been running against an empty active timeline. ### Summary and Changelog Test-only coverage for the completion-time watermark, plus one error-message fix. - `TestAWSGlueSyncClient`: four new tests. The watermark test seeds a second commit whose instant time sorts below the fixture's but whose completion time is later, and asserts the two watermarks come from the two different instants; mutating the client to persist the completion time of the instant-time-latest instant fails it (`expected: <20250101000001000> but was: <20250101000000000>`). Also: no-op when the timeline has no completed commit, and both read-back paths of `getLastCommitCompletionTimeSynced`. - `TestHiveSyncToolLongRunningWriteWatermark` (new): end-to-end on `HiveSyncTool`, parameterized over the client. A long-running INSERT_OVERWRITE completes after two sync cycles advanced the watermark past its instant time: the stock client registers the partition through the hollow-instant lookup in `TimelineUtils.getCommitsTimelineAfter`; an instant-time-only client silently and permanently drops it. - `TestHiveSyncTool`: `updateLastCommitTimeSynced` on a created-but-never-written table must no-op. - `HiveTestUtil`: `startInsertOverwritePartition` (requested + inflight markers and data files, no completed file) and `addEmptyCommit` helpers. - `GlueTestUtil`: the fixture commit is now written into the timeline folder with an explicit completion time in the file name, so the fixture timeline is actually visible; `createCommitFile` / `deleteCommitFile` helpers. - `AWSGlueCatalogSyncClient.getLastCommitCompletionTimeSynced`: the failure message now names the database-qualified table like its sibling methods. Test code adapted from the 0.x backport of HUDI-7494. ### Impact None on production behavior; one exception message now includes the database name. ### Risk Level none ### Documentation Update none ### Contributor's checklist - [x] Read through [contributor's guide](https://hudi.apache.org/contribute/how-to-contribute) - [x] Enough context is provided in the sections above - [x] Adequate tests were added if applicable -- 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]
