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]
