[MXS-4736] Read-only transaction sometimes loses statements with causal_reads=universal and transaction_replay=true Created: 2023-08-31  Updated: 2023-09-01  Resolved: 2023-09-01

Status: Closed
Project: MariaDB MaxScale
Component/s: readwritesplit
Affects Version/s: 22.08.8, 23.02.4
Fix Version/s: 22.08.9, 23.02.5

Type: Bug Priority: Minor
Reporter: markus makela Assignee: markus makela
Resolution: Fixed Votes: 0
Labels: None


 Description   

If both causal_reads=universal and transaction_replay=true are in use and a read-only transaction started with START TRANSACTION READ ONLY is interrupted during the GTID probing phase, it is possible that the query for which the GTID probe was being done is not sent after the transaction replay is complete. The transaction replay ends up being started twice if the server where the query would be routed after the GTID probing was done ends up failing before the server where the GTID probing is being done. With the right timing, two transaction replays end up being done which usually causes two START TRANSACTION statements to be sent.

So far this has only manifested as a failure of the mxs3663_universal_causal_reads test case and would only happen if two servers failed simultaneously.


Generated at Thu Feb 08 04:30:47 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.