summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrei Elkin <andrei.elkin@mariadb.com>2019-05-23 21:12:14 +0300
committerAndrei Elkin <andrei.elkin@mariadb.com>2019-05-24 17:30:35 +0300
commitaaf53ea0b68efde4a90cabbbcaf9ca41c1fbf62f (patch)
tree13544eb14273f71e1dc8ab753647c1d080630c4b
parente57bb1f76cd0f8eac587a5fede01ba19bd54677a (diff)
downloadmariadb-git-aaf53ea0b68efde4a90cabbbcaf9ca41c1fbf62f.tar.gz
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.
-rw-r--r--mysql-test/suite/rpl/r/rpl_semi_sync_skip_repl.result13
-rw-r--r--mysql-test/suite/rpl/t/rpl_semi_sync_skip_repl.test29
2 files changed, 25 insertions, 17 deletions
diff --git a/mysql-test/suite/rpl/r/rpl_semi_sync_skip_repl.result b/mysql-test/suite/rpl/r/rpl_semi_sync_skip_repl.result
index 4762ac8dd07..272263bc288 100644
--- a/mysql-test/suite/rpl/r/rpl_semi_sync_skip_repl.result
+++ b/mysql-test/suite/rpl/r/rpl_semi_sync_skip_repl.result
@@ -5,19 +5,22 @@ SET @@GLOBAL.rpl_semi_sync_master_enabled = 1;
SET @@GLOBAL.rpl_semi_sync_master_timeout=100;
include/stop_slave.inc
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
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;
INSERT INTO t1 SET a=1;
SET @@SESSION.skip_replication=0;
INSERT INTO t1 SET a=0;
SET @@GLOBAL.debug_dbug="";
-SET @@GLOBAL. rpl_semi_sync_master_timeout = 10000;
-SET @@GLOBAL. rpl_semi_sync_master_enabled = 0;
+FLUSH LOGS;
+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;
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;
+include/start_slave.inc
include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_semi_sync_skip_repl.test b/mysql-test/suite/rpl/t/rpl_semi_sync_skip_repl.test
index 2f6da18067c..8c00bae06cd 100644
--- a/mysql-test/suite/rpl/t/rpl_semi_sync_skip_repl.test
+++ b/mysql-test/suite/rpl/t/rpl_semi_sync_skip_repl.test
@@ -16,29 +16,34 @@ source include/master-slave.inc;
# Suppress warnings that might be generated during the test
call mtr.add_suppression("Timeout waiting for reply of binlog");
---let $sav_enabled_master=`SELECT @@GLOBAL.rpl_semi_sync_master_enabled `
---let $sav_timeout_master=`SELECT @@GLOBAL.rpl_semi_sync_master_timeout `
+--let $sav_enabled_master=`SELECT @@GLOBAL.rpl_semi_sync_master_enabled`
+--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_timeout=100;
--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;
---let $sav_skip_marked_slave=`SELECT @@GLOBAL.replicate_events_marked_for_skip `
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;
--connection master
CREATE TABLE t1 (a INT) ENGINE=innodb;
# 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;
INSERT INTO t1 SET a=1;
SET @@SESSION.skip_replication=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
@@ -46,17 +51,17 @@ INSERT INTO t1 SET a=0;
# Clean up
#
--connection master
-SET @@GLOBAL.debug_dbug="";
---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.debug_dbug=$sav_debug_dbug
+--eval SET @@GLOBAL.rpl_semi_sync_master_timeout = $sav_timeout_master
+--eval SET @@GLOBAL.rpl_semi_sync_master_enabled = $sav_enabled_master
--connection master
DROP TABLE t1;
--sync_slave_with_master
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
---let $rpl_only_running_threads= 1
+source include/start_slave.inc;
--source include/rpl_end.inc