CryoThrust commented on issue #12212:
URL: https://github.com/apache/seatunnel/issues/12212#issuecomment-5595181602

   Thanks for the additional evidence. Since the native mysqlbinlog decoder can 
replay the event successfully, the most useful next slice seems to be the 
checkpoint/reader failure ordering rather than changing the row decoder blindly.
   
   The key invariant I would test is: once a split fetcher has recorded a fatal 
error, no later checkpoint acknowledgement may advance the recoverable source 
position past records that have not been handed off successfully. A 
deterministic harness could use a fake split reader that (1) publishes records 
A/B, (2) advances its source offset, (3) fails the fetcher before the reader 
drains/acknowledges the batch, and (4) races a checkpoint snapshot. The 
assertions should cover both checkpoint acceptance/rejection and the restored 
offset after restart.
   
   It would also be useful to capture the exact ownership boundary for the 
MySQL CDC offset: whether it is advanced on binlog decode, fetcher enqueue, 
source-reader poll, or downstream acknowledgement. If the offset is advanced 
before the failure becomes visible to snapshotState, the fix likely belongs at 
the reader/checkpoint coordination boundary (for example, snapshot must observe 
SplitFetcherManager.checkErrors()), not in the Debezium parser.
   
   I am not proposing a competing implementation while @zhang-arvin 
investigates. I would be happy to review a focused regression test or help 
narrow the offset-ownership contract once a draft is available.
   


-- 
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