mariadb/mysql-test/suite/galera/t/galera_var_sync_wait.test
Nirbhay Choubey 7ff44b1a83 MDEV-10161: wsrep_sync_wait not enabled when set to 1 in config file
Since wsrep_sync_wait & wsrep_causal_reads variables are related,
they are always kept in sync whenever one of them changes.
Same is tried on server start, where wsrep_sync_wait get updated
based on wsrep_causal_reads' value. But, since wsrep_causal_reads
is OFF by default, wsrep_sync_wait's value gets modified and loses
its WSREP_SYNC_WAIT_BEFORE_READ bit.

Fixed by syncing wsrep_sync_wait & wsrep_causal_reads values
individually on server start in mysqld_get_one_option() based
on command line arguments used.
2016-06-27 18:30:07 -04:00

50 lines
1.2 KiB
Text

#
# Simple test for the various levels of wsrep-sync-wait
#
--source include/galera_cluster.inc
--source include/have_innodb.inc
--echo #
--echo # MDEV-10161: wsrep_sync_wait not enabled when set to 1 in config file
--echo #
# galera_2nodes.cnf sets wsrep_sync_wait to 7
SELECT @@global.wsrep_sync_wait;
SELECT @@global.wsrep_causal_reads;
--let $wsrep_sync_wait_orig = `SELECT @@wsrep_sync_wait`
--connection node_1
CREATE TABLE t1 (f1 INT PRIMARY KEY) Engine=InnoDB;
--connection node_2
SET GLOBAL wsrep_sync_wait = 1;
# Those statements should see the table
SHOW TABLES LIKE '%t1';
SELECT COUNT(*) = 0 FROM t1;
--connection node_1
CREATE TABLE t2 (f1 INT PRIMARY KEY) Engine=InnoDB;
--connection node_2
SET GLOBAL wsrep_sync_wait = 4;
# This insert should see the table and succeed
INSERT INTO t2 VALUES (1);
--connection node_1
CREATE TABLE t3 (f1 INT PRIMARY KEY) Engine=InnoDB;
INSERT INTO t3 VALUES (1);
--connection node_2
SET GLOBAL wsrep_sync_wait = 2;
# This statement should see and update 1 row
--enable_info
UPDATE t3 SET f1 = 2;
--disable_info
--connection node_2
--eval SET GLOBAL wsrep_sync_wait = $wsrep_sync_wait_orig
DROP TABLE t1;
DROP TABLE t2;
DROP TABLE t3;