mirror of
https://github.com/MariaDB/server.git
synced 2025-01-31 11:01:52 +01:00
7ff44b1a83
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.
50 lines
1.2 KiB
Text
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;
|