mirror of
https://github.com/MariaDB/server.git
synced 2025-01-19 13:32:33 +01:00
78 lines
1.9 KiB
Text
78 lines
1.9 KiB
Text
#
|
|
# Test manipulating wsrep_desync while an RSU operation is in progress
|
|
#
|
|
|
|
--source include/galera_cluster.inc
|
|
--source include/have_innodb.inc
|
|
--source include/have_debug_sync.inc
|
|
|
|
# First, test wsrep_desync 1 > 0 during DDL
|
|
|
|
--connection node_1
|
|
CREATE TABLE t1 (f1 INTEGER) Engine=InnoDB;
|
|
|
|
SET GLOBAL wsrep_desync=1;
|
|
SET wsrep_OSU_method=RSU;
|
|
|
|
SET DEBUG_SYNC = 'alter_table_before_open_tables WAIT_FOR continue';
|
|
--send ALTER TABLE t1 ADD COLUMN f2 INTEGER;
|
|
|
|
--connect node_1a, 127.0.0.1, root, , test, $NODE_MYPORT_1
|
|
--connection node_1a
|
|
|
|
--let $wait_condition = SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.PROCESSLIST WHERE STATE = 'debug sync point: alter_table_before_open_tables'
|
|
--source include/wait_condition.inc
|
|
|
|
SET GLOBAL wsrep_desync=0;
|
|
SET DEBUG_SYNC= 'now SIGNAL continue';
|
|
|
|
--connection node_1
|
|
--reap
|
|
|
|
SHOW CREATE TABLE t1;
|
|
SHOW VARIABLES LIKE 'wsrep_desync';
|
|
SET wsrep_OSU_method=TOI;
|
|
|
|
DROP TABLE t1;
|
|
SET DEBUG_SYNC= 'RESET';
|
|
|
|
# Next, test wsrep_desync 0 > 1 during DDL, currently not allowed
|
|
|
|
--connection node_1
|
|
CREATE TABLE t1 (f1 INTEGER) Engine=InnoDB;
|
|
|
|
SET GLOBAL wsrep_desync=0;
|
|
SET wsrep_OSU_method=RSU;
|
|
|
|
SET DEBUG_SYNC = 'alter_table_before_open_tables WAIT_FOR continue';
|
|
--send ALTER TABLE t1 ADD COLUMN f2 INTEGER;
|
|
|
|
--connection node_1a
|
|
|
|
--let $wait_condition = SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.PROCESSLIST WHERE STATE = 'debug sync point: alter_table_before_open_tables'
|
|
--source include/wait_condition.inc
|
|
|
|
# This transition is currently not allowed
|
|
--error ER_CANNOT_USER
|
|
SET GLOBAL wsrep_desync=1;
|
|
SET GLOBAL wsrep_desync=0;
|
|
|
|
SET DEBUG_SYNC= 'now SIGNAL continue';
|
|
|
|
--connection node_1
|
|
--reap
|
|
|
|
SHOW CREATE TABLE t1;
|
|
|
|
# Restore old state
|
|
SET wsrep_OSU_method=TOI;
|
|
DROP TABLE t1;
|
|
SET DEBUG_SYNC= 'RESET';
|
|
|
|
CALL mtr.add_suppression("Protocol violation");
|
|
CALL mtr.add_suppression("desync failed");
|
|
|
|
--connection node_2
|
|
CALL mtr.add_suppression("Protocol violation");
|
|
|
|
|