-
Notifications
You must be signed in to change notification settings - Fork 592
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
tx/rm_stm: deal with duplicate begin_tx requests #18187
Conversation
Chaos logs showed that there can be duplicate (back to back) begin_tx requests due to some certain client quirks beyond our control. We had some checks in place to ignore them but they were invalidated by redpanda-data#18076 which redefined the transaction boundries. After redpanda-data#18076 an entry in the ongoing_map does not mean the data has been replicated as a part of the transaction. This PR adjusts the checks accordingly. Note: This code is going away soon, so we will have better API in the producer_state to make the code more easily understandable. This PR is to make chaos happy until then.
new failures in https://buildkite.com/redpanda/redpanda/builds/48540#018f3196-772a-4c10-8f40-4dc1748d061b:
new failures in https://buildkite.com/redpanda/redpanda/builds/48540#018f3196-772e-4b6d-9378-c928356f7ec3:
new failures in https://buildkite.com/redpanda/redpanda/builds/48540#018f319f-1a85-488f-91b2-cb1e3bd69456:
new failures in https://buildkite.com/redpanda/redpanda/builds/48540#018f319f-1a8e-4294-9e0b-78a68b967939:
|
It the duplicated |
yes.. the check right above the changed lines of code checks for it..
|
/ci-repeat 1 |
Failures are all known and fixed by #18199 |
ducktape was retried in https://buildkite.com/redpanda/redpanda/builds/48634#018f3b2f-cd75-4e03-b7ea-51046d2813bc |
Chaos logs showed that there can be duplicate (back to back) begin_tx requests due to certain client quirks beyond our control. We had some checks in place to ignore them but they were invalidated by #18076 which redefined the transaction boundaries. After #18076 an entry in the ongoing_map does not mean the data has been replicated as a part of the transaction. This PR adjusts the checks accordingly.
Note: This code is going away soon, so we will have better API in the producer_state to make the code more easily understandable. This PR is to make chaos happy until then.
Backports Required
Release Notes