Commit db9622f1 authored by Jan Lindström's avatar Jan Lindström

MDEV-19405: Galera test failure on galera_parallel_autoinc_largetrx

Test case was not stable. Fixed also galera_parallel_autoinc_manytrx
as it has the same problem.
parent 0573744a
CREATE TABLE ten (f1 INTEGER);
CREATE TABLE ten (f1 INTEGER) Engine=InnoDB;
INSERT INTO ten VALUES (1),(2),(3),(4),(5),(6),(7),(8),(9),(10);
CREATE TABLE t1 (f1 INTEGER AUTO_INCREMENT PRIMARY KEY, f2 INTEGER) Engine=InnoDB;
set session wsrep_sync_wait=15;
SET GLOBAL wsrep_slave_threads = 4;
INSERT INTO t1 (f2) SELECT 1 FROM ten AS a1, ten AS a2, ten AS a3, ten AS a4;;
INSERT INTO t1 (f2) SELECT 1 FROM ten AS a1, ten AS a2, ten AS a3, ten AS a4;;
INSERT INTO t1 (f2) SELECT 1 FROM ten AS a1, ten AS a2, ten AS a3, ten AS a4;;
SELECT COUNT(*) = 30000 FROM t1;
COUNT(*) = 30000
1
SELECT COUNT(DISTINCT f1) = 30000 FROM t1;
COUNT(DISTINCT f1) = 30000
1
SELECT COUNT(*) = 5 FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system user';
COUNT(*) = 5
1
SELECT COUNT(*) FROM t1;
COUNT(*)
30000
SELECT COUNT(DISTINCT f1) FROM t1;
COUNT(DISTINCT f1)
30000
DROP TABLE t1;
DROP TABLE ten;
CREATE TABLE ten (f1 INTEGER);
CREATE TABLE ten (f1 INTEGER) Engine=InnoDB;
INSERT INTO ten VALUES (1),(2),(3),(4),(5),(6),(7),(8),(9),(10);
CREATE TABLE t1 (f1 INTEGER AUTO_INCREMENT PRIMARY KEY, f2 INTEGER) Engine=InnoDB;
set session wsrep_sync_wait=15;
SET GLOBAL wsrep_slave_threads = 4;
SELECT COUNT(*) = 20000 FROM t1;
COUNT(*) = 20000
1
SELECT COUNT(DISTINCT f1) = 20000 FROM t1;
COUNT(DISTINCT f1) = 20000
1
SELECT COUNT(*) = 4 FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system user' AND STATE LIKE 'committed%';
COUNT(*) = 4
1
CREATE PROCEDURE p1 (repeat_count int)
BEGIN
DECLARE current_num int;
SET current_num = 0;
WHILE current_num < repeat_count do
INSERT INTO t1 (f2) SELECT 1 FROM ten AS a1;
COMMIT;
SET current_num = current_num + 1;
END WHILE;
END|
SELECT COUNT(*) FROM t1;
COUNT(*)
40000
SELECT COUNT(DISTINCT f1) FROM t1;
COUNT(DISTINCT f1)
40000
DROP TABLE t1;
DROP TABLE ten;
DROP PROCEDURE p1;
......@@ -12,13 +12,18 @@
--source include/galera_connect.inc
--connection node_1
CREATE TABLE ten (f1 INTEGER);
CREATE TABLE ten (f1 INTEGER) Engine=InnoDB;
INSERT INTO ten VALUES (1),(2),(3),(4),(5),(6),(7),(8),(9),(10);
CREATE TABLE t1 (f1 INTEGER AUTO_INCREMENT PRIMARY KEY, f2 INTEGER) Engine=InnoDB;
--connection node_2
set session wsrep_sync_wait=15;
--let $wsrep_slave_threads_orig = `SELECT @@wsrep_slave_threads`
SET GLOBAL wsrep_slave_threads = 4;
--let $wait_condition = SELECT COUNT(*) = @@wsrep_slave_threads + 1 FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system user' AND (STATE IS NULL OR STATE NOT LIKE 'InnoDB%');
--source include/wait_condition.inc
--connection node_1
--send INSERT INTO t1 (f2) SELECT 1 FROM ten AS a1, ten AS a2, ten AS a3, ten AS a4;
......@@ -37,9 +42,9 @@ SET GLOBAL wsrep_slave_threads = 4;
--connection node_2
--reap
SELECT COUNT(*) = 30000 FROM t1;
SELECT COUNT(DISTINCT f1) = 30000 FROM t1;
SELECT COUNT(*) = 5 FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system user';
--disconnect node_1a
SELECT COUNT(*) FROM t1;
SELECT COUNT(DISTINCT f1) FROM t1;
--disable_query_log
--eval SET GLOBAL wsrep_slave_threads = $wsrep_slave_threads_orig;
......
......@@ -6,43 +6,78 @@
--source include/have_innodb.inc
--source include/big_test.inc
# Create a second connection to node1 so that we can run transactions concurrently
--connection node_1
CREATE TABLE ten (f1 INTEGER) Engine=InnoDB;
INSERT INTO ten VALUES (1),(2),(3),(4),(5),(6),(7),(8),(9),(10);
CREATE TABLE t1 (f1 INTEGER AUTO_INCREMENT PRIMARY KEY, f2 INTEGER) Engine=InnoDB;
# Create few connections to node1 so that we can run transactions concurrently
--let $galera_connection_name = node_1a
--let $galera_server_number = 1
--source include/galera_connect.inc
--connection node_1
CREATE TABLE ten (f1 INTEGER);
INSERT INTO ten VALUES (1),(2),(3),(4),(5),(6),(7),(8),(9),(10);
--let $galera_connection_name = node_1b
--let $galera_server_number = 1
--source include/galera_connect.inc
CREATE TABLE t1 (f1 INTEGER AUTO_INCREMENT PRIMARY KEY, f2 INTEGER) Engine=InnoDB;
--connection node_2
set session wsrep_sync_wait=15;
--let $wsrep_slave_threads_orig = `SELECT @@wsrep_slave_threads`
SET GLOBAL wsrep_slave_threads = 4;
--let $wait_condition = SELECT COUNT(*) = @@wsrep_slave_threads + 1 FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system user' AND (STATE IS NULL OR STATE NOT LIKE 'InnoDB%');
--source include/wait_condition.inc
--connection node_1
DELIMITER |;
CREATE PROCEDURE p1 (repeat_count int)
BEGIN
DECLARE current_num int;
SET current_num = 0;
WHILE current_num < repeat_count do
INSERT INTO t1 (f2) SELECT 1 FROM ten AS a1;
COMMIT;
SET current_num = current_num + 1;
END WHILE;
END|
DELIMITER ;|
--disable_query_log
send call p1(1000);
--connection node_1a
--disable_query_log
send call p1(1000);
--connection node_1b
--disable_query_log
send call p1(1000);
--connection node_2
--disable_query_log
send call p1(1000);
--connection node_1
--let $count = 1000
while ($count)
{
--disable_query_log
INSERT INTO t1 (f2) SELECT 1 FROM ten AS a1;
--enable_query_log
--dec $count
}
reap;
--enable_query_log
--connection node_1a
reap;
--enable_query_log
--connection node_1b
reap;
--enable_query_log
--connection node_2
--let $count = 1000
while ($count)
{
--disable_query_log
INSERT INTO t1 (f2) SELECT 1 FROM ten AS a1;
--enable_query_log
--dec $count
}
SELECT COUNT(*) = 20000 FROM t1;
SELECT COUNT(DISTINCT f1) = 20000 FROM t1;
SELECT COUNT(*) = 4 FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system user' AND STATE LIKE 'committed%';
reap;
--enable_query_log
SELECT COUNT(*) FROM t1;
SELECT COUNT(DISTINCT f1) FROM t1;
--disconnect node_1a
--disconnect node_1b
--disable_query_log
--eval SET GLOBAL wsrep_slave_threads = $wsrep_slave_threads_orig;
......@@ -51,4 +86,6 @@ SELECT COUNT(*) = 4 FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system use
--connection default
DROP TABLE t1;
DROP TABLE ten;
DROP PROCEDURE p1;
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment