mirror of
https://github.com/MariaDB/server.git
synced 2025-08-05 13:16:09 +03:00
MDEV-35281 SR transaction crashes with innodb_snapshot_isolation
Ignore snapshot isolation conflict during fragment removal, before streaming transaction commits. This happens when a streaming transaction creates a read view that precedes the INSERTion of fragments into the streaming_log table. Fragments are INSERTed using a different transaction. These fragment are then removed as part of COMMIT of the streaming transaction. This fragment removal operation could fail when the fragments were not part the transaction's read view, thus violating snapshot isolation.
This commit is contained in:
@@ -5561,9 +5561,11 @@ public:
|
||||
query_id_t wsrep_last_query_id;
|
||||
XID wsrep_xid;
|
||||
|
||||
/** This flag denotes that record locking should be skipped during INSERT
|
||||
and gap locking during SELECT. Only used by the streaming replication thread
|
||||
that only modifies the wsrep_schema.SR table. */
|
||||
/** This flag denotes that record locking should be skipped during INSERT,
|
||||
gap locking during SELECT, and write-write conflicts due to innodb
|
||||
snapshot isolation during DELETE.
|
||||
Only used by the streaming replication thread that only modifies the
|
||||
mysql.wsrep_streaming_log table. */
|
||||
my_bool wsrep_skip_locking;
|
||||
|
||||
mysql_cond_t COND_wsrep_thd;
|
||||
|
Reference in New Issue
Block a user