mariadb/mysql-test/suite/galera
Hemant Dangi d5db6c1daa MDL BF-BF conflict on ALTER and INSERT with multi-level foreign key parents
Issue:
On galera write node INSERT statements does not acquire MDL locks on it's all child
tables and thereby wsrep certification keys are also added for limited tables, but
on applier nodes it does acquire MDL locks for all child tables. This can result
into MDL BF-BF conflict on applier node when transactions referring to parent and
child tables are executed concurrently. For example:

Tables with foreign keys: t1<-t2<-t3<-t4
Conflicting transactions: INSERT t1 and DROP TABLE t4

Wsrep certification keys taken on write node:
- for INSERT t1: t1 and t2
- for DROP TABLE t4: t4

On applier node MDL BF-BF conflict happened between two transaction because
MDL locks on t1, t2, t3 and t4 were taken for INSERT t1, which conflicted
with MDL lock on t4 taken by DROP TABLE t4.
The Wsrep certification keys helps in resolving this MDL BF-BF conflict by
prioritizing and scheduling concurrent transactions. But to generate Wsrep
certification keys it needs to open and take MDL locks on all the child tables.

On applier nodes Write_rows event is implicitly a REPLACE, deleting all conflicting
rows which can cause cascading FK actions and locks on foreign key children tables.

Solution:
For Galera applier nodes the Write_rows event is considered pure INSERT
which will never cause cascading FK actions and locks on foreign key children tables.
2026-01-31 11:42:12 +01:00
..
include Merge branch '10.5' into '10.6' 2025-04-02 04:43:24 +02:00
r MDL BF-BF conflict on ALTER and INSERT with multi-level foreign key parents 2026-01-31 11:42:12 +01:00
t MDL BF-BF conflict on ALTER and INSERT with multi-level foreign key parents 2026-01-31 11:42:12 +01:00
disabled.def Merge branch '10.6' into bb-10.11-release 2025-10-27 14:34:43 +01:00
galera_2nodes.cnf galera mtr tests: unification of wsrep provider settings 2025-02-12 13:37:03 +01:00
galera_2nodes_as_master.cnf galera mtr tests: unification of wsrep provider settings 2025-02-12 13:37:03 +01:00
galera_2nodes_as_replica_2primary.cnf galera mtr tests: unification of wsrep provider settings 2025-02-12 13:37:03 +01:00
galera_2nodes_as_slave.cnf galera mtr tests: unification of wsrep provider settings 2025-02-12 13:37:03 +01:00
galera_2x2nodes.cnf MDEV-33523 Spurious deadlock error when wsrep_on=OFF 2024-06-06 19:19:34 +02:00
galera_3nodes_as_slave.cnf galera mtr tests: unification of wsrep provider settings 2025-02-12 13:37:03 +01:00
galera_4nodes.cnf galera mtr tests: unification of wsrep provider settings 2025-02-12 13:37:03 +01:00
my.cnf
suite.pm MDEV-38218 : Galera test failure on galera_bf_abort_flush_for_export 2026-01-20 10:23:44 +02:00