Skip to content

Commit

Permalink
Galera MTR Test: Test for MW-28 : Assertion with --wsrep-log-conflicts
Browse files Browse the repository at this point in the history
  • Loading branch information
philip-galera authored and SachinSetiya committed Mar 14, 2017
1 parent 0e0ae0b commit 6fabf12
Show file tree
Hide file tree
Showing 3 changed files with 74 additions and 0 deletions.
18 changes: 18 additions & 0 deletions mysql-test/suite/galera/r/galera_wsrep_log_conficts.result
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
CREATE TABLE t1 (
f1 VARCHAR(255) PRIMARY KEY
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO t1 VALUES ('abc');
SELECT f1 = 'abc' FROM t1;
f1 = 'abc'
1
SET AUTOCOMMIT=OFF;
START TRANSACTION;
UPDATE t1 SET f1 = 'klm';
SET AUTOCOMMIT=OFF;
START TRANSACTION;
UPDATE t1 SET f1 = 'xyz';
COMMIT;
COMMIT;
ERROR 40001: Deadlock found when trying to get lock; try restarting transaction
include/assert_grep.inc [cluster conflict due to high priority abort for threads]
DROP TABLE t1;
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
--wsrep_log_conflicts=ON
55 changes: 55 additions & 0 deletions mysql-test/suite/galera/t/galera_wsrep_log_conficts.test
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
#
# Test --wsrep_log_conflicts=ON
#

--source include/galera_cluster.inc
--source include/have_innodb.inc

CREATE TABLE t1 (
f1 VARCHAR(255) PRIMARY KEY
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

INSERT INTO t1 VALUES ('abc');

--connection node_2
SELECT f1 = 'abc' FROM t1;

#
# Provoke a conflict
#

--connection node_1
SET AUTOCOMMIT=OFF;
START TRANSACTION;
UPDATE t1 SET f1 = 'klm';

--connection node_2
SET AUTOCOMMIT=OFF;
START TRANSACTION;
UPDATE t1 SET f1 = 'xyz';

--connection node_1
COMMIT;

--connect node_2a, 127.0.0.1, root, , test, $NODE_MYPORT_2
--connection node_2a
--let $wait_condition = SELECT f1 = 'klm' FROM t1;
--source include/wait_condition.inc

--connection node_2
--error ER_LOCK_DEADLOCK
COMMIT;

#
# We can not really check the log output very much because it is quite variable
#

--let $assert_file = $MYSQLTEST_VARDIR/log/mysqld.2.err
--let $assert_only_after = CURRENT_TEST

--let $assert_text = cluster conflict due to high priority abort for threads
--let $assert_select = cluster conflict due to high priority abort for threads
--let $assert_match = cluster conflict due to high priority abort for threads
--source include/assert_grep.inc

DROP TABLE t1;

0 comments on commit 6fabf12

Please sign in to comment.