Commit 3cee665a authored by Jan Lindström's avatar Jan Lindström

MDEV-17847 Galera test failure on MW-328[A|B|C]

Test changes only.
parent 609ea2f3
...@@ -11,9 +11,6 @@ ...@@ -11,9 +11,6 @@
############################################################################## ##############################################################################
MW-286 : MDEV-19992 Galera test failure on MW-286 MW-286 : MDEV-19992 Galera test failure on MW-286
MW-328A : MDEV-17847 Galera test failure on MW-328[A|B|C]
MW-328B : MDEV-17847 Galera test failure on MW-328[A|B|C]
MW-328C : MDEV-17847 Galera test failure on MW-328[A|B|C]
MW-329 : MDEV-19962 Galera test failure on MW-329 MW-329 : MDEV-19962 Galera test failure on MW-329
MW-388: MDEV-19803 Long semaphore wait error on galera.MW-388 MW-388: MDEV-19803 Long semaphore wait error on galera.MW-388
galera_account_management : MariaDB 10.0 does not support ALTER USER galera_account_management : MariaDB 10.0 does not support ALTER USER
......
...@@ -14,14 +14,29 @@ connection node_1X; ...@@ -14,14 +14,29 @@ connection node_1X;
CALL proc_update();; CALL proc_update();;
connection node_2; connection node_2;
SET SESSION wsrep_retry_autocommit = 0; SET SESSION wsrep_retry_autocommit = 0;
have_successes
1
have_deadlocks
1
connection node_1; connection node_1;
connection node_1X; connection node_1X;
Got one of the listed errors Got one of the listed errors
connection node_1; connection node_1;
DROP PROCEDURE proc_update; DROP PROCEDURE proc_update;
DROP TABLE t1, t2; DROP TABLE t1, t2;
CALL mtr.add_suppression("conflict state 3 after post commit"); CALL mtr.add_suppression("conflict state ABORTED after post commit");
connection node_1;
CREATE TABLE t1 (i int primary key, j int) engine=innodb;
INSERT INTO t1 values (1,0);
BEGIN;
UPDATE t1 SET j=1 WHERE i=1;
connection node_2;
UPDATE t1 SET j=2 WHERE i=1;
connection node_1;
COMMIT;
ERROR 40001: Deadlock: wsrep aborted transaction
SELECT * FROM t1;
i j
1 2
connection node_2;
SELECT * FROM t1;
i j
1 2
connection node_1;
DROP TABLE t1;
...@@ -20,4 +20,4 @@ Got one of the listed errors ...@@ -20,4 +20,4 @@ Got one of the listed errors
connection node_1; connection node_1;
DROP PROCEDURE proc_update; DROP PROCEDURE proc_update;
DROP TABLE t1, t2; DROP TABLE t1, t2;
CALL mtr.add_suppression("conflict state 3 after post commit"); CALL mtr.add_suppression("conflict state ABORTED after post commit");
...@@ -20,4 +20,4 @@ Got one of the listed errors ...@@ -20,4 +20,4 @@ Got one of the listed errors
connection node_1; connection node_1;
DROP PROCEDURE proc_update; DROP PROCEDURE proc_update;
DROP TABLE t1, t2; DROP TABLE t1, t2;
CALL mtr.add_suppression("conflict state 3 after post commit"); CALL mtr.add_suppression("conflict state ABORTED after post commit");
...@@ -15,4 +15,4 @@ ...@@ -15,4 +15,4 @@
DROP PROCEDURE proc_update; DROP PROCEDURE proc_update;
DROP TABLE t1, t2; DROP TABLE t1, t2;
CALL mtr.add_suppression("conflict state 3 after post commit"); CALL mtr.add_suppression("conflict state ABORTED after post commit");
...@@ -3,13 +3,16 @@ ...@@ -3,13 +3,16 @@
# #
# #
# Attempt to insert into t2 and check if insert actually inserted rows if # test phase 1 is not deterministic
# a success was reported. #
# Here we attempt to insert into t2 and check if insert actually
# inserted rows if a success was reported.
#
# However, deadlocks may or may not happen in this test execution
# it all depends on timing.
# #
--source include/big_test.inc
--source include/galera_cluster.inc --source include/galera_cluster.inc
--source include/have_innodb.inc
--source suite/galera/t/MW-328-header.inc --source suite/galera/t/MW-328-header.inc
--connection node_2 --connection node_2
...@@ -25,7 +28,7 @@ while ($count) ...@@ -25,7 +28,7 @@ while ($count)
{ {
TRUNCATE TABLE t2; TRUNCATE TABLE t2;
--error 0,1213 --error 0,ER_LOCK_DEADLOCK
INSERT IGNORE INTO t2 SELECT f2 FROM t1; INSERT IGNORE INTO t2 SELECT f2 FROM t1;
if ($mysql_errno != 1213) { if ($mysql_errno != 1213) {
--inc $successes --inc $successes
...@@ -44,14 +47,31 @@ while ($count) ...@@ -44,14 +47,31 @@ while ($count)
--enable_query_log --enable_query_log
--source suite/galera/t/MW-328-footer.inc
# #
# Check that the test produced both deadlocks and successes # Test phase 2 is deterministic
# Here we generate a sure conflict in node 1 and verify that
# insert failed in both nodes
# #
--connection node_1
CREATE TABLE t1 (i int primary key, j int) engine=innodb;
INSERT INTO t1 values (1,0);
--disable_query_log BEGIN;
--eval SELECT $successes > 0 AS have_successes UPDATE t1 SET j=1 WHERE i=1;
--eval SELECT $deadlocks > 0 AS have_deadlocks
--enable_query_log
--connection node_2
UPDATE t1 SET j=2 WHERE i=1;
--source suite/galera/t/MW-328-footer.inc --connection node_1
--error ER_LOCK_DEADLOCK
COMMIT;
SELECT * FROM t1;
--connection node_2
SELECT * FROM t1;
--connection node_1
DROP TABLE t1;
...@@ -7,9 +7,7 @@ ...@@ -7,9 +7,7 @@
# gets the deadlock error # gets the deadlock error
# #
--source include/big_test.inc
--source include/galera_cluster.inc --source include/galera_cluster.inc
--source include/have_innodb.inc
--source suite/galera/t/MW-328-header.inc --source suite/galera/t/MW-328-header.inc
--connection node_2 --connection node_2
......
...@@ -7,9 +7,8 @@ ...@@ -7,9 +7,8 @@
# masks all deadlock errors # masks all deadlock errors
# #
--source include/big_test.inc
--source include/galera_cluster.inc --source include/galera_cluster.inc
--source include/have_innodb.inc --source include/big_test.inc
--source suite/galera/t/MW-328-header.inc --source suite/galera/t/MW-328-header.inc
--connection node_2 --connection node_2
......
...@@ -7,7 +7,6 @@ ...@@ -7,7 +7,6 @@
# #
--source include/galera_cluster.inc --source include/galera_cluster.inc
--source include/have_innodb.inc
CREATE TABLE t1 (i INT) ENGINE = InnoDB; CREATE TABLE t1 (i INT) ENGINE = InnoDB;
INSERT INTO t1 (i) VALUES(1); INSERT INTO t1 (i) VALUES(1);
......
...@@ -7,7 +7,6 @@ ...@@ -7,7 +7,6 @@
# #
--source include/galera_cluster.inc --source include/galera_cluster.inc
--source include/have_innodb.inc
create table t1 (i int primary key, j int) engine=innodb; create table t1 (i int primary key, j int) engine=innodb;
create table t2 (i int primary key, j int) engine=innodb; create table t2 (i int primary key, j int) engine=innodb;
......
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