mirror of
https://github.com/MariaDB/server.git
synced 2025-11-30 05:23:50 +03:00
51 lines
1.4 KiB
Plaintext
51 lines
1.4 KiB
Plaintext
#
|
|
# This test performs two dependent updates on two nodes and checks the results on the third where
|
|
# parallel apply is enabled.
|
|
#
|
|
|
|
--source include/galera_cluster.inc
|
|
--source include/have_innodb.inc
|
|
|
|
--let $galera_connection_name = node_3
|
|
--let $galera_server_number = 3
|
|
--source include/galera_connect.inc
|
|
|
|
CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB;
|
|
INSERT INTO t1 VALUES (1);
|
|
|
|
--connection node_3
|
|
--let $wsrep_slave_threads_orig = `SELECT @@wsrep_slave_threads`
|
|
SET GLOBAL wsrep_slave_threads = 2;
|
|
|
|
--connection node_1
|
|
--send UPDATE t1 SET f1 = f1 + 10;
|
|
|
|
--connection node_2
|
|
--send UPDATE t1 SET f1 = f1 + 100;
|
|
|
|
--connection node_1
|
|
#
|
|
# Note that test is not deterministic. We have following cases possible
|
|
# (1) Both updates are certified locally and then executed by the applier
|
|
# (2) Certification of update in node_1 fails because applier has started
|
|
# update from node_2
|
|
# (3) Certification of update in node_2 fails because applier has started
|
|
# update from node_1
|
|
#
|
|
--error 0,ER_LOCK_DEADLOCK
|
|
--reap
|
|
SELECT COUNT(*) FROM t1;
|
|
|
|
--connection node_2
|
|
--error 0,ER_LOCK_DEADLOCK
|
|
--reap
|
|
SELECT COUNT(*) FROM t1;
|
|
|
|
--connection node_3
|
|
SELECT COUNT(*) FROM t1;
|
|
SELECT COUNT(*) IN (1, 2) FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system user' AND STATE LIKE '%committed%';
|
|
|
|
--eval SET GLOBAL wsrep_slave_threads = $wsrep_slave_threads_orig;
|
|
|
|
DROP TABLE t1;
|