Commit aaf53ea0 authored by Andrei Elkin's avatar Andrei Elkin

MDEV-17948 Assertion `thd_killed(thd) || !m_active_tranxs ..

Simulation of a big-sized event in rpl.rpl_semi_sync_skip_repl did not clean
up after itself so screw the last binlog event offset which could jump
backwards.
The test is refined to rotate a binlog file with simulation and use the next
one for logics of the test incl master-slave synchonization.
parent e57bb1f7
...@@ -5,19 +5,22 @@ SET @@GLOBAL.rpl_semi_sync_master_enabled = 1; ...@@ -5,19 +5,22 @@ SET @@GLOBAL.rpl_semi_sync_master_enabled = 1;
SET @@GLOBAL.rpl_semi_sync_master_timeout=100; SET @@GLOBAL.rpl_semi_sync_master_timeout=100;
include/stop_slave.inc include/stop_slave.inc
SET @@GLOBAL.replicate_events_marked_for_skip=FILTER_ON_MASTER; SET @@GLOBAL.replicate_events_marked_for_skip=FILTER_ON_MASTER;
SET @@GLOBAL. rpl_semi_sync_slave_enabled = 1; SET @@GLOBAL.rpl_semi_sync_slave_enabled = 1;
include/start_slave.inc include/start_slave.inc
CREATE TABLE t1 (a INT) ENGINE=innodb; CREATE TABLE t1 (a INT) ENGINE=innodb;
SET @@GLOBAL.debug_dbug= "d,dbug_master_binlog_over_2GB"; SET @@GLOBAL.debug_dbug="d,dbug_master_binlog_over_2GB";
SET @@SESSION.skip_replication=1; SET @@SESSION.skip_replication=1;
INSERT INTO t1 SET a=1; INSERT INTO t1 SET a=1;
SET @@SESSION.skip_replication=0; SET @@SESSION.skip_replication=0;
INSERT INTO t1 SET a=0; INSERT INTO t1 SET a=0;
SET @@GLOBAL.debug_dbug=""; SET @@GLOBAL.debug_dbug="";
SET @@GLOBAL. rpl_semi_sync_master_timeout = 10000; FLUSH LOGS;
SET @@GLOBAL. rpl_semi_sync_master_enabled = 0; SET @@GLOBAL.debug_dbug=@@GLOBAL.debug_dbug;
SET @@GLOBAL.rpl_semi_sync_master_timeout = 10000;
SET @@GLOBAL.rpl_semi_sync_master_enabled = 0;
DROP TABLE t1; DROP TABLE t1;
include/stop_slave.inc include/stop_slave.inc
SET @@GLOBAL. rpl_semi_sync_slave_enabled = 0; SET @@GLOBAL.rpl_semi_sync_slave_enabled = 0;
SET @@GLOBAL.replicate_events_marked_for_skip = REPLICATE; SET @@GLOBAL.replicate_events_marked_for_skip = REPLICATE;
include/start_slave.inc
include/rpl_end.inc include/rpl_end.inc
...@@ -16,29 +16,34 @@ source include/master-slave.inc; ...@@ -16,29 +16,34 @@ source include/master-slave.inc;
# Suppress warnings that might be generated during the test # Suppress warnings that might be generated during the test
call mtr.add_suppression("Timeout waiting for reply of binlog"); call mtr.add_suppression("Timeout waiting for reply of binlog");
--let $sav_enabled_master=`SELECT @@GLOBAL.rpl_semi_sync_master_enabled ` --let $sav_enabled_master=`SELECT @@GLOBAL.rpl_semi_sync_master_enabled`
--let $sav_timeout_master=`SELECT @@GLOBAL.rpl_semi_sync_master_timeout ` --let $sav_timeout_master=`SELECT @@GLOBAL.rpl_semi_sync_master_timeout`
SET @@GLOBAL.rpl_semi_sync_master_enabled = 1; SET @@GLOBAL.rpl_semi_sync_master_enabled = 1;
SET @@GLOBAL.rpl_semi_sync_master_timeout=100; SET @@GLOBAL.rpl_semi_sync_master_timeout=100;
--connection slave --connection slave
--let $sav_skip_marked_slave=`SELECT @@GLOBAL.replicate_events_marked_for_skip`
--let $sav_enabled_slave=`SELECT @@GLOBAL.rpl_semi_sync_slave_enabled`
source include/stop_slave.inc; source include/stop_slave.inc;
--let $sav_skip_marked_slave=`SELECT @@GLOBAL.replicate_events_marked_for_skip `
SET @@GLOBAL.replicate_events_marked_for_skip=FILTER_ON_MASTER; SET @@GLOBAL.replicate_events_marked_for_skip=FILTER_ON_MASTER;
--let $sav_enabled_slave=`SELECT @@GLOBAL.rpl_semi_sync_slave_enabled ` SET @@GLOBAL.rpl_semi_sync_slave_enabled = 1;
SET @@GLOBAL. rpl_semi_sync_slave_enabled = 1;
source include/start_slave.inc; source include/start_slave.inc;
--connection master --connection master
CREATE TABLE t1 (a INT) ENGINE=innodb; CREATE TABLE t1 (a INT) ENGINE=innodb;
# Make the following events as if they offset over 2GB from the beginning of binlog # Make the following events as if they offset over 2GB from the beginning of binlog
SET @@GLOBAL.debug_dbug= "d,dbug_master_binlog_over_2GB"; --let $sav_debug_dbug=@@GLOBAL.debug_dbug
SET @@GLOBAL.debug_dbug="d,dbug_master_binlog_over_2GB";
SET @@SESSION.skip_replication=1; SET @@SESSION.skip_replication=1;
INSERT INTO t1 SET a=1; INSERT INTO t1 SET a=1;
SET @@SESSION.skip_replication=0; SET @@SESSION.skip_replication=0;
INSERT INTO t1 SET a=0; INSERT INTO t1 SET a=0;
SET @@GLOBAL.debug_dbug="";
# The current binlog is inconsistent so let's rotate it away
# to clean up simulation results.
FLUSH LOGS;
--sync_slave_with_master --sync_slave_with_master
...@@ -46,17 +51,17 @@ INSERT INTO t1 SET a=0; ...@@ -46,17 +51,17 @@ INSERT INTO t1 SET a=0;
# Clean up # Clean up
# #
--connection master --connection master
SET @@GLOBAL.debug_dbug=""; --eval SET @@GLOBAL.debug_dbug=$sav_debug_dbug
--eval SET @@GLOBAL. rpl_semi_sync_master_timeout = $sav_timeout_master --eval SET @@GLOBAL.rpl_semi_sync_master_timeout = $sav_timeout_master
--eval SET @@GLOBAL. rpl_semi_sync_master_enabled = $sav_enabled_master --eval SET @@GLOBAL.rpl_semi_sync_master_enabled = $sav_enabled_master
--connection master --connection master
DROP TABLE t1; DROP TABLE t1;
--sync_slave_with_master --sync_slave_with_master
source include/stop_slave.inc; source include/stop_slave.inc;
--eval SET @@GLOBAL. rpl_semi_sync_slave_enabled = $sav_enabled_slave --eval SET @@GLOBAL.rpl_semi_sync_slave_enabled = $sav_enabled_slave
--eval SET @@GLOBAL.replicate_events_marked_for_skip = $sav_skip_marked_slave --eval SET @@GLOBAL.replicate_events_marked_for_skip = $sav_skip_marked_slave
--let $rpl_only_running_threads= 1 source include/start_slave.inc;
--source include/rpl_end.inc --source include/rpl_end.inc
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