diff options
author | Marko Mäkelä <marko.makela@mariadb.com> | 2023-03-29 15:29:02 +0300 |
---|---|---|
committer | Marko Mäkelä <marko.makela@mariadb.com> | 2023-03-29 15:29:02 +0300 |
commit | 191821f7df312a8d0f723cc937ef6a6e2388b0d6 (patch) | |
tree | 1d7713309f9f9673c98c7d4b139b8d8a2c300c4c /mysql-test/suite/rpl/t/rpl_parallel_rollback_assert.test | |
parent | 78d0d74eb72ac4e8f763511d9d20dda020dd8673 (diff) | |
parent | 55e78ebf4136ed7bf78b45963f53e503201a59bb (diff) | |
download | mariadb-git-191821f7df312a8d0f723cc937ef6a6e2388b0d6.tar.gz |
Merge 10.9 into 10.10
Diffstat (limited to 'mysql-test/suite/rpl/t/rpl_parallel_rollback_assert.test')
-rw-r--r-- | mysql-test/suite/rpl/t/rpl_parallel_rollback_assert.test | 63 |
1 files changed, 62 insertions, 1 deletions
diff --git a/mysql-test/suite/rpl/t/rpl_parallel_rollback_assert.test b/mysql-test/suite/rpl/t/rpl_parallel_rollback_assert.test index f66375b7fb4..eec331b3d64 100644 --- a/mysql-test/suite/rpl/t/rpl_parallel_rollback_assert.test +++ b/mysql-test/suite/rpl/t/rpl_parallel_rollback_assert.test @@ -1 +1,62 @@ ---source include/rpl_parallel_rollback_assert.inc +--echo *** MDEV-8725: Assertion on ROLLBACK statement in the binary log *** +--source include/have_innodb.inc +--source include/master-slave.inc + +--connection server_2 +SET @old_parallel_threads=@@GLOBAL.slave_parallel_threads; +--source include/stop_slave.inc +SET GLOBAL slave_parallel_threads=10; +CHANGE MASTER TO master_use_gtid=slave_pos; +--source include/start_slave.inc + +--connection server_1 +ALTER TABLE mysql.gtid_slave_pos ENGINE=InnoDB; +CREATE TABLE t1 (a int PRIMARY KEY) ENGINE=MyISAM; +CREATE TABLE t2 (a int PRIMARY KEY) ENGINE=InnoDB; +--save_master_pos + +--connection server_2 +--sync_with_master + +--connection server_1 +# Inject an event group terminated by ROLLBACK, by mixing MyISAM and InnoDB +# in a transaction. The bug was an assertion on the ROLLBACK due to +# mark_start_commit() being already called. +--disable_warnings +BEGIN; +INSERT INTO t2 VALUES (2000); +INSERT INTO t1 VALUES (2000); +INSERT INTO t2 VALUES (2001); +ROLLBACK; +--enable_warnings +SELECT * FROM t1 WHERE a>=2000 ORDER BY a; +SELECT * FROM t2 WHERE a>=2000 ORDER BY a; +--source include/save_master_gtid.inc + +--connection server_2 +--source include/sync_with_master_gtid.inc + +--connection server_1 +INSERT INTO t2 VALUES (2020); +--source include/save_master_gtid.inc + +--connection server_2 +--source include/sync_with_master_gtid.inc +SELECT * FROM t2 WHERE a>=2000 ORDER BY a; +let $rows_in_t1= `SELECT COUNT(*) FROM t1 WHERE a>=2000 ORDER BY a`; +if ($rows_in_t1 == 0) +{ +--query_vertical SHOW SLAVE STATUS +} +SELECT * FROM t1 WHERE a>=2000 ORDER BY a; + +# Clean up. +--source include/stop_slave.inc +SET GLOBAL slave_parallel_threads=@old_parallel_threads; +--source include/start_slave.inc + +--connection server_1 +DROP TABLE t1,t2; + +--source include/rpl_end.inc + |