DanielLeens commented on issue #11676: URL: https://github.com/apache/seatunnel/issues/11676#issuecomment-5210721144
Thanks for the precise report and for reducing this to a concrete restored-split assignment race. I checked the behavior you described, and this does look like a real bug in the CDC enumerator restore path rather than a sink-side issue. The key problem is that `addSplitsBack(...)` returns restored splits to the assigner, but does not trigger a new assignment pass when the reader is already waiting. In that state, the job appears healthy from the engine side, checkpoints continue, but the source has effectively gone idle because the restored split never gets dispatched again. Your proposed fix direction is well scoped: 1. keep the change inside the enumerator restore path; 2. re-run split assignment only after restored splits are added back; 3. preserve existing behavior when there is no waiting reader / no restored work; 4. cover the race with a deterministic unit test and an end-to-end restart case. Since you marked that you are willing to submit a PR, I've assigned the issue to you. I also saw that PR #11677 is already open, so the implementation discussion can now continue mainly there. From the issue side, the remaining acceptance bar is straightforward: restored splits must be re-delivered to waiting readers after restart, and the fix should not regress normal split assignment or checkpoint recovery behavior. -- 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]
