# # MW-286 Spurious deadlock error after error with wsrep_desync and wsrep_on # --source include/galera_cluster.inc --source include/have_innodb.inc --source include/have_debug_sync.inc --connection node_1 CREATE TABLE t1 (f1 INTEGER) Engine=InnoDB; # Insert some values before the ALTER INSERT INTO t1 (f1) VALUES (1), (2), (3); # # run ALTER with no wsrep replication # --connection node_2 SET GLOBAL wsrep_desync = TRUE; SET wsrep_on = FALSE; # # stop ALTER processing after it has acquired exclusive MDL lock # SET SESSION debug_sync = "alter_table_inplace_after_lock_upgrade SIGNAL mdl_locked WAIT_FOR mdl_continue"; --send ALTER TABLE t1 ADD PRIMARY KEY (f1); --connect node_2a, 127.0.0.1, root, , test, $NODE_MYPORT_2 --connection node_2a SET SESSION debug_sync = "now WAIT_FOR mdl_locked"; # # replicate conflicting insert from node_1 # --connection node_1 INSERT INTO t1(f1) VALUES (11); # # let parked ALTER processing to continue after the conflict # --connection node_2a SET debug_sync = "now SIGNAL mdl_continue"; SET debug_sync='RESET'; # # ALTER should have been aborted with query interupted error code # --connection node_2 --error ER_QUERY_INTERRUPTED --reap SET wsrep_on = TRUE; SET GLOBAL wsrep_desync = FALSE; --connection node_1 DROP TABLE t1;