mirror of
https://github.com/MariaDB/server.git
synced 2025-08-08 11:22:35 +03:00
galera_var_wsrep_on_off : Add wait conditions to make sure DDL is replicated before continuing. wsrep.[variables|variables_debug] : Remove unnecessary parts and add check to correct number of variables or skip galera_ssl_reload: Add version check and SSL checks.
186 lines
4.1 KiB
Plaintext
186 lines
4.1 KiB
Plaintext
#
|
|
# Test wsrep_on = OFF. Some events will not be replicated
|
|
#
|
|
|
|
--source include/galera_cluster.inc
|
|
--source include/have_innodb.inc
|
|
|
|
CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB;
|
|
INSERT INTO t1 VALUES (1);
|
|
SET SESSION wsrep_on = FALSE;
|
|
|
|
# This statement will not be replicated
|
|
INSERT INTO t1 VALUES (2);
|
|
|
|
--connection node_2
|
|
SELECT COUNT(*) = 1 FROM t1;
|
|
|
|
--connection node_1
|
|
SET GLOBAL wsrep_on = TRUE;
|
|
INSERT INTO t1 VALUES (3);
|
|
|
|
--connection node_2
|
|
SELECT COUNT(*) = 2 FROM t1;
|
|
|
|
# Middle insert is not replicated
|
|
SELECT COUNT(*) = 0 FROM t1 WHERE f1 = 2;
|
|
|
|
# Final insert is replicated
|
|
SELECT COUNT(*) = 1 FROM t1 WHERE f1 = 3;
|
|
|
|
DROP TABLE t1;
|
|
|
|
--connection node_1
|
|
--let $wait_condition = SELECT COUNT(*) = 0 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 't1';
|
|
--source include/wait_condition.inc
|
|
|
|
#
|
|
# Test that variable wsrep_on cannot be changed while in
|
|
# active transaction.
|
|
#
|
|
|
|
--connection node_1
|
|
START TRANSACTION;
|
|
--error ER_CANT_DO_THIS_DURING_AN_TRANSACTION
|
|
SET SESSION wsrep_on=OFF;
|
|
--error ER_CANT_DO_THIS_DURING_AN_TRANSACTION
|
|
SET GLOBAL wsrep_on=OFF;
|
|
COMMIT;
|
|
|
|
|
|
#
|
|
# Test that @@global.wsrep_on does not affect the value of
|
|
# @@session.wsrep_on of current sessions
|
|
#
|
|
|
|
--connection node_1
|
|
CREATE TABLE t1 (f1 INTEGER PRIMARY KEY);
|
|
START TRANSACTION;
|
|
INSERT INTO t1 VALUES (1);
|
|
|
|
--connect node_1a, 127.0.0.1, root, , test, $NODE_MYPORT_1;
|
|
--connection node_1a
|
|
SET GLOBAL wsrep_on = OFF;
|
|
|
|
--connection node_1
|
|
SHOW SESSION VARIABLES LIKE 'wsrep_on';
|
|
SHOW GLOBAL VARIABLES LIKE 'wsrep_on';
|
|
INSERT INTO t1 VALUES (2);
|
|
COMMIT;
|
|
|
|
--connection node_2
|
|
SET SESSION wsrep_sync_wait = 15;
|
|
SELECT * FROM t1;
|
|
|
|
--connection node_1a
|
|
SET GLOBAL wsrep_on = ON;
|
|
DROP TABLE t1;
|
|
|
|
--connection node_2
|
|
--let $wait_condition = SELECT COUNT(*) = 0 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 't1';
|
|
--source include/wait_condition.inc
|
|
|
|
|
|
#
|
|
# New connections inherit @@session.wsrep_on from @@global.wsrep_on
|
|
#
|
|
|
|
--connection node_1
|
|
SET GLOBAL wsrep_on = OFF;
|
|
|
|
--connect node_1b, 127.0.0.1, root, , test, $NODE_MYPORT_1;
|
|
--connection node_1b
|
|
SHOW SESSION VARIABLES LIKE 'wsrep_on';
|
|
SHOW GLOBAL VARIABLES LIKE 'wsrep_on';
|
|
CREATE TABLE t2 (f1 INTEGER);
|
|
DROP TABLE t2;
|
|
|
|
SET GLOBAL wsrep_on = ON;
|
|
SHOW SESSION VARIABLES LIKE 'wsrep_on';
|
|
|
|
--disconnect node_1b
|
|
|
|
--connection node_2
|
|
--let $wait_condition = SELECT COUNT(*) = 0 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 't2';
|
|
--source include/wait_condition.inc
|
|
|
|
|
|
#
|
|
# Can't set @@session.wsrep_on = ON, while @@global.wsrep_on = OFF
|
|
#
|
|
|
|
--connection node_1
|
|
SET GLOBAL wsrep_on = OFF;
|
|
--error ER_WRONG_ARGUMENTS
|
|
SET SESSION wsrep_on = ON;
|
|
|
|
SET GLOBAL wsrep_on = ON;
|
|
SET SESSION wsrep_on = ON;
|
|
|
|
|
|
#
|
|
# @@global.wsrep_on = OFF followed by @@global.wsrep_on = ON
|
|
# in a new connection
|
|
#
|
|
|
|
--connection node_1
|
|
CREATE TABLE t1 (f1 INTEGER PRIMARY KEY);
|
|
SET GLOBAL wsrep_on = OFF;
|
|
--connect node_1b, 127.0.0.1, root, , test, $NODE_MYPORT_1;
|
|
--connection node_1b
|
|
SHOW SESSION VARIABLES LIKE 'wsrep_on';
|
|
SHOW GLOBAL VARIABLES LIKE 'wsrep_on';
|
|
SET GLOBAL wsrep_on = ON;
|
|
START TRANSACTION;
|
|
INSERT INTO t1 VALUES(1);
|
|
COMMIT;
|
|
|
|
SELECT * FROM t1;
|
|
|
|
--connection node_2
|
|
SELECT * FROM t1;
|
|
|
|
DROP TABLE t1;
|
|
|
|
--connection node_1
|
|
--let $wait_condition = SELECT COUNT(*) = 0 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 't1';
|
|
--source include/wait_condition.inc
|
|
|
|
#
|
|
# Test single statement, multi statement, and
|
|
# TOI tansactions while @@session.wsrep_on = OFF
|
|
# and then same @@global.wsrep_on = OFF.
|
|
# Notice, the combination @@global.wsrep_on = OFF
|
|
# and @@session.wsrep_on = ON is not not possible,
|
|
# (as tested above in this test case)
|
|
#
|
|
|
|
--connection node_1
|
|
SET SESSION wsrep_on = OFF;
|
|
CREATE TABLE t1 (f1 INTEGER PRIMARY KEY);
|
|
INSERT INTO t1 VALUES (1);
|
|
START TRANSACTION;
|
|
INSERT INTO t1 VALUES (2);
|
|
COMMIT;
|
|
DROP TABLE t1;
|
|
--connection node_2
|
|
SHOW TABLES;
|
|
--connection node_1
|
|
SET SESSION wsrep_on = ON;
|
|
|
|
SET GLOBAL wsrep_on = OFF;
|
|
CREATE TABLE t1 (f1 INTEGER PRIMARY KEY);
|
|
INSERT INTO t1 VALUES (1);
|
|
START TRANSACTION;
|
|
INSERT INTO t1 VALUES (2);
|
|
COMMIT;
|
|
--connection node_2
|
|
SHOW TABLES;
|
|
--connection node_1
|
|
DROP TABLE t1;
|
|
SET GLOBAL wsrep_on = ON;
|
|
|
|
--connection node_2
|
|
--let $wait_condition = SELECT COUNT(*) = 0 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 't1';
|
|
--source include/wait_condition.inc
|