mirror of
https://github.com/MariaDB/server.git
synced 2025-11-30 05:23:50 +03:00
1. sync_binlog=1 is needed to ensure that on flush binlog is available on disk. 2. Insert on 'connection master2' should wait for 'master1_ready' from 'connection master1'. Added sync_binlog=1 to all tests that got added as part of MDEV-21117 fix @mysql-test/suite/binlog/t/binlog_truncate_multi_log_unsafe.test @mysql-test/suite/binlog/t/binlog_truncate_multi_engine.test @mysql-test/suite/binlog/t/binlog_truncate_active_log.test @mysql-test/suite/binlog/t/binlog_truncate_multi_log.test
56 lines
1.8 KiB
Plaintext
56 lines
1.8 KiB
Plaintext
call mtr.add_suppression("Can.t init tc log");
|
|
call mtr.add_suppression("Aborting");
|
|
SET @@global.max_binlog_size= 4096;
|
|
SET @@global.sync_binlog= 1;
|
|
RESET MASTER;
|
|
FLUSH LOGS;
|
|
CREATE TABLE ti (a INT PRIMARY KEY, b MEDIUMTEXT) ENGINE=Innodb;
|
|
CREATE TABLE tm (a INT PRIMARY KEY, b MEDIUMTEXT) ENGINE=MyISAM;
|
|
connect master1,localhost,root,,;
|
|
"List of binary logs before rotation"
|
|
show binary logs;
|
|
Log_name File_size
|
|
master-bin.000001 #
|
|
master-bin.000002 #
|
|
INSERT INTO ti VALUES(1,"I am gonna survive");
|
|
INSERT INTO tm VALUES(1,"me too!");
|
|
SET DEBUG_SYNC= "commit_after_release_LOCK_after_binlog_sync SIGNAL master1_ready WAIT_FOR master1_go_never_arrives";
|
|
INSERT INTO ti VALUES (2, REPEAT("x", 4100));
|
|
connect master2,localhost,root,,;
|
|
SET DEBUG_SYNC= "now WAIT_FOR master1_ready";
|
|
SET DEBUG_SYNC= "commit_before_get_LOCK_commit_ordered SIGNAL master2_ready WAIT_FOR master2_go_never_arrives";
|
|
INSERT INTO ti VALUES (3, "not gonna survive");
|
|
connection default;
|
|
SET DEBUG_SYNC= "now WAIT_FOR master2_ready";
|
|
"List of binary logs before crash"
|
|
show binary logs;
|
|
Log_name File_size
|
|
master-bin.000001 #
|
|
master-bin.000002 #
|
|
master-bin.000003 #
|
|
# The gtid binlog state prior the crash will be truncated at the end of the test
|
|
SELECT @@global.gtid_binlog_state;
|
|
@@global.gtid_binlog_state
|
|
0-1-6
|
|
connection default;
|
|
# Kill the server
|
|
disconnect master1;
|
|
disconnect master2;
|
|
# restart: --rpl-semi-sync-slave-enabled=1 --sync-binlog=1
|
|
FOUND 1 /truncated binlog file:.*master.*000002/ in mysqld.1.err
|
|
"One record should be present in table"
|
|
SELECT * FROM ti;
|
|
a b
|
|
1 I am gonna survive
|
|
# The truncated gtid binlog state
|
|
SELECT @@global.gtid_binlog_state;
|
|
@@global.gtid_binlog_state
|
|
0-1-4
|
|
SELECT @@global.gtid_binlog_pos;
|
|
@@global.gtid_binlog_pos
|
|
0-1-4
|
|
# Cleanup
|
|
DROP TABLE ti;
|
|
SET @@global.sync_binlog= default;
|
|
# End of the tests
|