Details
-
Bug
-
Status: Closed (View Workflow)
-
Critical
-
Resolution: Fixed
-
10.5, 10.6, 10.7(EOL), 10.8(EOL), 10.9(EOL), 10.10(EOL), 10.11, 11.0(EOL), 11.1(EOL)
-
None
Description
Similar to MDEV-29642, but instead of a slave crashing, if a parallel slave executing an XA PREPARE fails the follow up autocommit transaction due to a temporary error which can be retried (e.g. a deadlock when trying to lock mysql.gtid_slave_pos), then the retry will run into the same issue as MDEV-29642, i.e. an out-of-order GTID attempt (if gtid strict mode is enabled) or XID already exists (otherwise).
This is because the XA PREPARE had already committed successfully in binlog and storage engines, and only the slave GTID state update failed. Then on retry, the transaction has already been seen, so we error.
Filed as a separate ticket (rather than extending MDEV-29642 scope) because this is specific to the parallel slave, and may need a separate effort.
Attachments
Issue Links
- is caused by
-
MDEV-31185 rw_trx_hash_t::find() unpins pins too early
- Closed
- relates to
-
MDEV-21777 Implement crash-safe execution the user XA on binlog-less slave
- Open
-
MDEV-31185 rw_trx_hash_t::find() unpins pins too early
- Closed
-
MDEV-29642 Server Crash During XA Prepare Can Break Replication
- Closed