li3zhi4 commented on PR #11885: URL: https://github.com/apache/seatunnel/pull/11885#issuecomment-6159895468
Thanks @SEZ9 \u2014 I checked the requested interactions on current head `7f17332b7a`:\n\n- **F1/F6, same checkpoint serialization path:** `IncrementalSourceEnumerator` exposes `getEnumeratorState()` by returning `splitAssigner.snapshotState(...)` (`IncrementalSourceEnumerator.java`, `getEnumeratorState` around lines 157-161); the engine persists that enumerator state through its configured `EnumeratorStateSerializer`. On connector-cdc-base there is no dedicated `PendingSplitsStateSerializer` and IncrementalSource does not override `getEnumeratorStateSerializer`, so the source-interface default serializer applies; the `IncrementalPhaseStateTest` round-trip at `:35-46` uses real `ObjectOutputStream`/`ObjectInputStream` (`:64-72`), i.e. the same default Java-serialization mechanism, and pins the new field plus legacy null behavior. The assigner restore/write path remains `IncrementalSplitAssigner.java:114-125` and `:225-227`; the in-flight legacy fallback is `:202-219`.\n- **F2, no split can acquire a later/different latest offset:** all incremental splits are created through the one `resolvedStopOffset == null` guard at `IncrementalSplitAssigner.java:323-351`. The first call resolves once and assigns that value before creating the split; each later split reuses the cached value. `shouldResolveLatestStopOffsetOnceAtSplitCreationAndReuseAfterRestore` at `IncrementalSplitAssignerTest.java:157-197` verifies `latest()` is called once and the restored/later split has the same offset; the legacy fallback test is at `:200-236`.\n- **F3, the snapshot is demonstrably still active:** `MysqlCDCStopModeSpecificIT.java:340-423` uses 2,000 snapshot rows, `parallelism=1`, and `snapshot.split.size=20` (`mysqlcdc_stop_mode_latest.conf:18-40`), waits for id 1 at the sink, and asserts id 2000 is absent before issuing the post-snapshot update at `:425-449`. This cannot pass merely because a small snapshot completed quickly.\n- **F5 and docs:** retry is three attempts with 300/600 ms backoff in `IncrementalSplitAssigner.java:379-414`; EN/ZH option semantics are `MySQL-CDC.md:203` / `:202`, bounded-read explanation `:544-548` / `:536-539`.\n\nThe existing tests establish serialization of the state object and assigner reuse across state restoration; they are not a full engine checkpoint-container integration test. The actual configured checkpoint path nevertheless reaches this state through the default serializer described above. No new code change appears necessary for these points.\n -- 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]
