From 371dc336ea3210c00d4f37d6b77f9757f7eb2ec9 Mon Sep 17 00:00:00 2001 From: Philip Stoev Date: Mon, 24 Aug 2015 06:56:30 -0700 Subject: [PATCH] refs codership/mysql-wsrep#90 MTR test case for mysql-wsrep#90 --- .../suite/galera/r/mysql-wsrep#90.result | 31 +++++++++ mysql-test/suite/galera/t/mysql-wsrep#90.test | 65 +++++++++++++++++++ 2 files changed, 96 insertions(+) create mode 100644 mysql-test/suite/galera/r/mysql-wsrep#90.result create mode 100644 mysql-test/suite/galera/t/mysql-wsrep#90.test diff --git a/mysql-test/suite/galera/r/mysql-wsrep#90.result b/mysql-test/suite/galera/r/mysql-wsrep#90.result new file mode 100644 index 00000000000..da57b9d0068 --- /dev/null +++ b/mysql-test/suite/galera/r/mysql-wsrep#90.result @@ -0,0 +1,31 @@ +CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) Engine=InnoDB; +SET GLOBAL wsrep_OSU_method = "RSU"; +SET DEBUG_SYNC = 'alter_table_before_open_tables WAIT_FOR continue'; +ALTER TABLE t1 ADD COLUMN f2 INTEGER;; +SET SESSION wsrep_sync_wait = 0; +SET GLOBAL wsrep_OSU_method = "TOI"; +SET DEBUG_SYNC= 'now SIGNAL continue'; +SELECT COUNT(*) = 2 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 't1'; +COUNT(*) = 2 +1 +SELECT COUNT(*) = 2 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 't1'; +COUNT(*) = 2 +1 +DROP TABLE t1; +CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) Engine=InnoDB; +SET GLOBAL wsrep_OSU_method = "TOI"; +SET DEBUG_SYNC = 'alter_table_before_open_tables WAIT_FOR continue'; +ALTER TABLE t1 ADD COLUMN f2 INTEGER;; +SET SESSION wsrep_sync_wait = 0; +SET GLOBAL wsrep_OSU_method = "RSU"; +SET DEBUG_SYNC= 'now SIGNAL continue'; +SELECT COUNT(*) = 2 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 't1'; +COUNT(*) = 2 +1 +INSERT INTO t1 VALUES (1,2); +SELECT COUNT(*) = 2 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 't1'; +COUNT(*) = 2 +1 +INSERT INTO t1 VALUES (3,4); +DROP TABLE t1; +SET GLOBAL WSREP_OSU_METHOD = TOI; diff --git a/mysql-test/suite/galera/t/mysql-wsrep#90.test b/mysql-test/suite/galera/t/mysql-wsrep#90.test new file mode 100644 index 00000000000..5af86fb2872 --- /dev/null +++ b/mysql-test/suite/galera/t/mysql-wsrep#90.test @@ -0,0 +1,65 @@ +# Crash in galera_to_execute_end when wsrep_OSU_method is changed from RSU to TOI during a DDL + +--source include/galera_cluster.inc +--source include/have_innodb.inc +--source include/have_debug_sync.inc + +CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) Engine=InnoDB; + +--connection node_1 +SET GLOBAL 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 +SET SESSION wsrep_sync_wait = 0; +--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_OSU_method = "TOI"; +SET DEBUG_SYNC= 'now SIGNAL continue'; + +--connection node_1 +--reap + +SELECT COUNT(*) = 2 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 't1'; + +--connection node_2 +SELECT COUNT(*) = 2 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 't1'; + +--connection node_1 +DROP TABLE t1; + + +CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) Engine=InnoDB; + +--connection node_1 +SET GLOBAL wsrep_OSU_method = "TOI"; +SET DEBUG_SYNC = 'alter_table_before_open_tables WAIT_FOR continue'; +--send ALTER TABLE t1 ADD COLUMN f2 INTEGER; + +--connection node_1a +SET SESSION wsrep_sync_wait = 0; + +--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_OSU_method = "RSU"; +SET DEBUG_SYNC= 'now SIGNAL continue'; + +--connection node_1 +--reap + +SELECT COUNT(*) = 2 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 't1'; +INSERT INTO t1 VALUES (1,2); + +--connection node_2 +SELECT COUNT(*) = 2 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 't1'; +INSERT INTO t1 VALUES (3,4); + +--connection node_1 +DROP TABLE t1; + +SET GLOBAL WSREP_OSU_METHOD = TOI;