Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DBZ-8340 Update GTID set also for TX payload events #7

Merged
merged 4 commits into from
Oct 24, 2024

Conversation

vjuranek
Copy link
Member

Currnet test compares GTID from two different clients which actually
doesn't ensure that GTID is chaning on the same client. Fix the to
always compare GTID changes on the same client.
CountDownEventListener is used in many tests for waiting for events in
the DB. As it's based on the event type, it doesn't work for compressed
binlog, when events are `TRANSACTION_PAYLOAD` events.
To be able to run the tests also with compressed binlog without any
major rewrite, support `TRANSACTION_PAYLOAD` data in this helper class
and process all events contained in `TRANSACTION_PAYLOAD` event.

Similar to `CapturingEventListener`.
Tests which don't work with compressed binlog are skipped.
When binlog compression is enabled, events are wrapped inside
`TRANSACTION_PAYLOAD` events and thus GTID set is never updated.
This may cause replay of events when the client thread in interrupted
and started again by keep-alive thread as the new client would start
from the original (initial) GTID set.

Updateing GTID set also for `TRANSACTION_PAYLOAD` events ensures that
GTID set is update also when binlog compression is enabled.
@jpechane jpechane merged commit 836b99e into debezium:main Oct 24, 2024
2 checks passed
@jpechane
Copy link

Applied, thanks

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants