mirror of
https://github.com/MariaDB/server.git
synced 2025-01-31 02:51:44 +01:00
cd0970c480
With MDEV-532, the binlog_checkpoint event is logged asynchronously from a binlog background thread. This causes some sporadic failures in some test cases whose output depends on order of events in binlog. Fix using an include file that waits until the binlog checkpoint event has been logged before proceeding with the test case.
89 lines
2 KiB
Text
89 lines
2 KiB
Text
--source include/have_innodb.inc
|
|
--source include/have_log_bin.inc
|
|
--source include/have_binlog_format_mixed_or_statement.inc
|
|
|
|
RESET MASTER;
|
|
|
|
# Test that we get the correct binlog position from START TRANSACTION WITH
|
|
# CONSISTENT SNAPSHOT even when other transactions are active.
|
|
|
|
connect(con1,localhost,root,,);
|
|
connect(con2,localhost,root,,);
|
|
connect(con3,localhost,root,,);
|
|
connect(con4,localhost,root,,);
|
|
|
|
connection default;
|
|
--echo # Connection default
|
|
|
|
CREATE TABLE t1 (a INT, b VARCHAR(100), PRIMARY KEY (a,b)) ENGINE=innodb;
|
|
SHOW MASTER STATUS;
|
|
SHOW STATUS LIKE 'binlog_snapshot_%';
|
|
BEGIN;
|
|
INSERT INTO t1 VALUES (0, "");
|
|
|
|
connection con1;
|
|
--echo # Connection con1
|
|
BEGIN;
|
|
INSERT INTO t1 VALUES (1, "");
|
|
|
|
connection con2;
|
|
--echo # Connection con2
|
|
CREATE TABLE t2 (a INT PRIMARY KEY) ENGINE=myisam;
|
|
BEGIN;
|
|
INSERT INTO t1 VALUES (2, "first");
|
|
INSERT INTO t2 VALUES (2);
|
|
INSERT INTO t1 VALUES (2, "second");
|
|
|
|
connection default;
|
|
--echo # Connection default
|
|
COMMIT;
|
|
|
|
SET TRANSACTION ISOLATION LEVEL REPEATABLE READ;
|
|
START TRANSACTION WITH CONSISTENT SNAPSHOT;
|
|
|
|
connection con3;
|
|
--echo # Connection con3
|
|
BEGIN;
|
|
INSERT INTO t1 VALUES (3, "");
|
|
INSERT INTO t2 VALUES (3);
|
|
|
|
connection con4;
|
|
--echo # Connection con4
|
|
BEGIN;
|
|
INSERT INTO t1 VALUES (4, "");
|
|
COMMIT;
|
|
|
|
connection default;
|
|
--echo # Connection default
|
|
SELECT * FROM t1 ORDER BY a,b;
|
|
SHOW STATUS LIKE 'binlog_snapshot_%';
|
|
SHOW MASTER STATUS;
|
|
SELECT * FROM t2 ORDER BY a;
|
|
|
|
connection con1;
|
|
--echo # Connection con1
|
|
COMMIT;
|
|
|
|
connection con2;
|
|
--echo # Connection con2
|
|
COMMIT;
|
|
|
|
connection con3;
|
|
--echo # Connection con3
|
|
COMMIT;
|
|
FLUSH LOGS;
|
|
--source include/wait_for_binlog_checkpoint.inc
|
|
|
|
connection default;
|
|
--echo # Connection default
|
|
SELECT * FROM t1 ORDER BY a,b;
|
|
SHOW STATUS LIKE 'binlog_snapshot_%';
|
|
SHOW MASTER STATUS;
|
|
COMMIT;
|
|
SHOW STATUS LIKE 'binlog_snapshot_%';
|
|
SHOW MASTER STATUS;
|
|
|
|
--replace_regex /\/\* xid=.* \*\//\/* XID *\// /Server ver: .*, Binlog ver: .*/Server ver: #, Binlog ver: #/ /table_id: [0-9]+/table_id: #/
|
|
SHOW BINLOG EVENTS;
|
|
|
|
DROP TABLE t1,t2;
|