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]

Reply via email to