diff options
Diffstat (limited to 'mysql-test/suite/galera/t/galera_gcs_fc_limit.test')
-rw-r--r-- | mysql-test/suite/galera/t/galera_gcs_fc_limit.test | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/mysql-test/suite/galera/t/galera_gcs_fc_limit.test b/mysql-test/suite/galera/t/galera_gcs_fc_limit.test new file mode 100644 index 00000000000..e15da0e35ad --- /dev/null +++ b/mysql-test/suite/galera/t/galera_gcs_fc_limit.test @@ -0,0 +1,52 @@ +# +# Test that under gcs.fc_limit=1 on the slave, transactions on the master can not commit. +# + +--source include/galera_cluster.inc +--source include/have_innodb.inc + +CREATE TABLE t1 (f1 INTEGER) ENGINE=InnoDB; +INSERT INTO t1 VALUES (1); + +--connection node_2 +--let $wsrep_provider_options_orig = `SELECT @@wsrep_provider_options` +SET GLOBAL wsrep_provider_options = 'gcs.fc_limit=1'; + +# Block the slave applier thread +FLUSH TABLES WITH READ LOCK; + +--connection node_1 + +INSERT INTO t1 VALUES (2); +INSERT INTO t1 VALUES (3); +INSERT INTO t1 VALUES (4); + +# This query will hang because flow control will kick in +--send +INSERT INTO t1 VALUES (5); +--sleep 1 + +--let $galera_connection_name = node_1a +--let $galera_server_number = 1 +--source include/galera_connect.inc +--connection node_1a +SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.PROCESSLIST WHERE STATE = 'query end' AND INFO = 'INSERT INTO t1 VALUES (5)'; + +--connection node_2 +# Unblock the slave applier thread +UNLOCK TABLES; + +--connection node_1 +--reap + +INSERT INTO t1 VALUES (6); + +--connection node_2 +# Replication catches up and continues normally +SELECT COUNT(*) = 6 FROM t1; + +--disable_query_log +--eval SET GLOBAL wsrep_provider_options = '$wsrep_provider_options_orig'; +--enable_query_log + +DROP TABLE t1; |