mirror of
https://github.com/MariaDB/server.git
synced 2025-08-08 11:22:35 +03:00
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.
This commit is contained in:
@@ -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;
|
|||||||
# 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;
|
|||||||
# 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
|
||||||
|
Reference in New Issue
Block a user