summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mysql-test/suite/rpl/r/rpl_parallel.result153
-rw-r--r--mysql-test/suite/rpl/t/rpl_parallel.test157
2 files changed, 155 insertions, 155 deletions
diff --git a/mysql-test/suite/rpl/r/rpl_parallel.result b/mysql-test/suite/rpl/r/rpl_parallel.result
index a5149f91cd4..a49d1f3ae60 100644
--- a/mysql-test/suite/rpl/r/rpl_parallel.result
+++ b/mysql-test/suite/rpl/r/rpl_parallel.result
@@ -1,5 +1,6 @@
include/master-slave.inc
[connection master]
+SET @old_parallel_threads=@@GLOBAL.slave_parallel_threads;
SET GLOBAL slave_parallel_threads=10;
ERROR HY000: This operation cannot be performed as you have a running slave ''; run STOP SLAVE '' first
include/stop_slave.inc
@@ -923,61 +924,6 @@ a
32
33
34
-*** MDEV-6676 - test syntax of @@slave_parallel_mode ***
-Parallel_Mode = 'domain,follow_master_commit'
-include/stop_slave.inc
-SET GLOBAL slave_parallel_mode='domain,follow_master_commit,transactional';
-ERROR HY000: Invalid use of 'transactional' option for slave_parallel_mode
-SET GLOBAL slave_parallel_mode='waiting,transactional,domain';
-Parallel_Mode = 'domain,transactional,waiting'
-SET GLOBAL slave_parallel_mode='domain,follow_master_commit';
-Parallel_Mode = 'domain,follow_master_commit'
-*** MDEV-6676 - test that empty parallel_mode does not replicate in parallel ***
-INSERT INTO t2 VALUES (40);
-include/save_master_gtid.inc
-SET GLOBAL slave_parallel_mode='';
-SET @old_dbug= @@GLOBAL.debug_dbug;
-SET GLOBAL debug_dbug="+d,slave_crash_if_parallel_apply";
-include/start_slave.inc
-include/sync_with_master_gtid.inc
-SELECT * FROM t2 WHERE a >= 40 ORDER BY a;
-a
-40
-include/stop_slave.inc
-SET GLOBAL debug_dbug=@old_dbug;
-*** MDEV-6676 - test disabling domain-based parallel replication ***
-SET gtid_domain_id = 1;
-INSERT INTO t2 VALUES (41);
-INSERT INTO t2 VALUES (42);
-INSERT INTO t2 VALUES (43);
-INSERT INTO t2 VALUES (44);
-INSERT INTO t2 VALUES (45);
-INSERT INTO t2 VALUES (46);
-DELETE FROM t2 WHERE a >= 41;
-SET gtid_domain_id = 2;
-INSERT INTO t2 VALUES (41);
-INSERT INTO t2 VALUES (42);
-INSERT INTO t2 VALUES (43);
-INSERT INTO t2 VALUES (44);
-INSERT INTO t2 VALUES (45);
-INSERT INTO t2 VALUES (46);
-SET gtid_domain_id = 0;
-include/save_master_gtid.inc
-SET GLOBAL slave_parallel_mode=follow_master_commit;
-include/start_slave.inc
-include/sync_with_master_gtid.inc
-SELECT * FROM t2 WHERE a >= 40 ORDER BY a;
-a
-40
-41
-42
-43
-44
-45
-46
-include/stop_slave.inc
-SET GLOBAL slave_parallel_mode='domain,follow_master_commit';
-include/start_slave.inc
*** MDEV-6775: Wrong binlog order in parallel replication ***
DELETE FROM t4;
INSERT INTO t4 VALUES (1,NULL), (3,NULL), (4,4), (5, NULL), (6, 6);
@@ -1028,7 +974,7 @@ SET GLOBAL slave_parallel_threads=0;
SET GLOBAL slave_parallel_threads=10;
include/start_slave.inc
*** MDEV-7237: Parallel replication: incorrect relaylog position after stop/start the slave ***
-INSERT INTO t2 VALUES (50);
+INSERT INTO t2 VALUES (40);
include/stop_slave.inc
CHANGE MASTER TO master_use_gtid=no;
SET @old_dbug= @@GLOBAL.debug_dbug;
@@ -1036,41 +982,41 @@ SET GLOBAL debug_dbug="+d,rpl_parallel_scheduled_gtid_0_x_100";
SET GLOBAL debug_dbug="+d,rpl_parallel_wait_for_done_trigger";
SET GLOBAL slave_parallel_threads=0;
SET GLOBAL slave_parallel_threads=10;
-INSERT INTO t2 VALUES (51);
-INSERT INTO t2 VALUES (52);
+INSERT INTO t2 VALUES (41);
+INSERT INTO t2 VALUES (42);
SET @old_format= @@binlog_format;
SET binlog_format= statement;
-DELETE FROM t2 WHERE a=50;
+DELETE FROM t2 WHERE a=40;
SET binlog_format= @old_format;
-INSERT INTO t2 VALUES (53);
-INSERT INTO t2 VALUES (54);
+INSERT INTO t2 VALUES (43);
+INSERT INTO t2 VALUES (44);
FLUSH LOGS;
-INSERT INTO t2 VALUES (55);
+INSERT INTO t2 VALUES (45);
SET gtid_seq_no=100;
-INSERT INTO t2 VALUES (56);
+INSERT INTO t2 VALUES (46);
BEGIN;
-SELECT * FROM t2 WHERE a=50 FOR UPDATE;
+SELECT * FROM t2 WHERE a=40 FOR UPDATE;
a
-50
+40
include/start_slave.inc
SET debug_sync= 'now WAIT_FOR scheduled_gtid_0_x_100';
STOP SLAVE;
SET debug_sync= 'now WAIT_FOR wait_for_done_waiting';
ROLLBACK;
include/wait_for_slave_sql_to_stop.inc
-SELECT * FROM t2 WHERE a >= 50 ORDER BY a;
+SELECT * FROM t2 WHERE a >= 40 ORDER BY a;
a
-51
-52
+41
+42
include/start_slave.inc
-SELECT * FROM t2 WHERE a >= 50 ORDER BY a;
+SELECT * FROM t2 WHERE a >= 40 ORDER BY a;
a
-51
-52
-53
-54
-55
-56
+41
+42
+43
+44
+45
+46
include/stop_slave.inc
SET GLOBAL debug_dbug=@old_dbug;
SET DEBUG_SYNC= 'RESET';
@@ -1191,8 +1137,63 @@ SET GLOBAL debug_dbug=@old_dbug;
SET GLOBAL slave_parallel_threads=0;
SET GLOBAL slave_parallel_threads=10;
include/start_slave.inc
+*** MDEV-6676 - test syntax of @@slave_parallel_mode ***
+Parallel_Mode = 'domain,follow_master_commit'
include/stop_slave.inc
-SET GLOBAL slave_parallel_threads=0;
+SET GLOBAL slave_parallel_mode='domain,follow_master_commit,transactional';
+ERROR HY000: Invalid use of 'transactional' option for slave_parallel_mode
+SET GLOBAL slave_parallel_mode='waiting,transactional,domain';
+Parallel_Mode = 'domain,transactional,waiting'
+SET GLOBAL slave_parallel_mode='domain,follow_master_commit';
+Parallel_Mode = 'domain,follow_master_commit'
+*** MDEV-6676 - test that empty parallel_mode does not replicate in parallel ***
+INSERT INTO t2 VALUES (1040);
+include/save_master_gtid.inc
+SET GLOBAL slave_parallel_mode='';
+SET @old_dbug= @@GLOBAL.debug_dbug;
+SET GLOBAL debug_dbug="+d,slave_crash_if_parallel_apply";
+include/start_slave.inc
+include/sync_with_master_gtid.inc
+SELECT * FROM t2 WHERE a >= 1040 ORDER BY a;
+a
+1040
+include/stop_slave.inc
+SET GLOBAL debug_dbug=@old_dbug;
+*** MDEV-6676 - test disabling domain-based parallel replication ***
+SET gtid_domain_id = 1;
+INSERT INTO t2 VALUES (1041);
+INSERT INTO t2 VALUES (1042);
+INSERT INTO t2 VALUES (1043);
+INSERT INTO t2 VALUES (1044);
+INSERT INTO t2 VALUES (1045);
+INSERT INTO t2 VALUES (1046);
+DELETE FROM t2 WHERE a >= 1041;
+SET gtid_domain_id = 2;
+INSERT INTO t2 VALUES (1041);
+INSERT INTO t2 VALUES (1042);
+INSERT INTO t2 VALUES (1043);
+INSERT INTO t2 VALUES (1044);
+INSERT INTO t2 VALUES (1045);
+INSERT INTO t2 VALUES (1046);
+SET gtid_domain_id = 0;
+include/save_master_gtid.inc
+SET GLOBAL slave_parallel_mode=follow_master_commit;
+include/start_slave.inc
+include/sync_with_master_gtid.inc
+SELECT * FROM t2 WHERE a >= 1040 ORDER BY a;
+a
+1040
+1041
+1042
+1043
+1044
+1045
+1046
+include/stop_slave.inc
+SET GLOBAL slave_parallel_mode='domain,follow_master_commit';
+include/start_slave.inc
+include/stop_slave.inc
+SET GLOBAL slave_parallel_threads=@old_parallel_threads;
include/start_slave.inc
SET DEBUG_SYNC= 'RESET';
DROP function foo;
diff --git a/mysql-test/suite/rpl/t/rpl_parallel.test b/mysql-test/suite/rpl/t/rpl_parallel.test
index c6b5f445752..2f5a45d00ca 100644
--- a/mysql-test/suite/rpl/t/rpl_parallel.test
+++ b/mysql-test/suite/rpl/t/rpl_parallel.test
@@ -6,7 +6,7 @@
# Test various aspects of parallel replication.
--connection server_2
---let $old_parallel_threads=`SELECT @@GLOBAL.slave_parallel_threads`
+SET @old_parallel_threads=@@GLOBAL.slave_parallel_threads;
--error ER_SLAVE_MUST_STOP
SET GLOBAL slave_parallel_threads=10;
--source include/stop_slave.inc
@@ -1465,71 +1465,6 @@ SET sql_slave_skip_counter= 1;
SELECT * FROM t2 WHERE a >= 30 ORDER BY a;
---echo *** MDEV-6676 - test syntax of @@slave_parallel_mode ***
---connection server_2
-
---let $status_items= Parallel_Mode
---source include/show_slave_status.inc
---source include/stop_slave.inc
---error ER_INVALID_SLAVE_PARALLEL_MODE
-SET GLOBAL slave_parallel_mode='domain,follow_master_commit,transactional';
-SET GLOBAL slave_parallel_mode='waiting,transactional,domain';
---let $status_items= Parallel_Mode
---source include/show_slave_status.inc
-SET GLOBAL slave_parallel_mode='domain,follow_master_commit';
---let $status_items= Parallel_Mode
---source include/show_slave_status.inc
-
-
---echo *** MDEV-6676 - test that empty parallel_mode does not replicate in parallel ***
---connection server_1
-INSERT INTO t2 VALUES (40);
---source include/save_master_gtid.inc
-
---connection server_2
-SET GLOBAL slave_parallel_mode='';
-# Test that we do not use parallel apply, by injecting an unconditional
-# crash in the parallel apply code.
-SET @old_dbug= @@GLOBAL.debug_dbug;
-SET GLOBAL debug_dbug="+d,slave_crash_if_parallel_apply";
---source include/start_slave.inc
---source include/sync_with_master_gtid.inc
-SELECT * FROM t2 WHERE a >= 40 ORDER BY a;
---source include/stop_slave.inc
-SET GLOBAL debug_dbug=@old_dbug;
-
-
---echo *** MDEV-6676 - test disabling domain-based parallel replication ***
---connection server_1
-# Let's do a bunch of transactions that will conflict if run out-of-order in
-# domain-based parallel replication mode.
-SET gtid_domain_id = 1;
-INSERT INTO t2 VALUES (41);
-INSERT INTO t2 VALUES (42);
-INSERT INTO t2 VALUES (43);
-INSERT INTO t2 VALUES (44);
-INSERT INTO t2 VALUES (45);
-INSERT INTO t2 VALUES (46);
-DELETE FROM t2 WHERE a >= 41;
-SET gtid_domain_id = 2;
-INSERT INTO t2 VALUES (41);
-INSERT INTO t2 VALUES (42);
-INSERT INTO t2 VALUES (43);
-INSERT INTO t2 VALUES (44);
-INSERT INTO t2 VALUES (45);
-INSERT INTO t2 VALUES (46);
-SET gtid_domain_id = 0;
---source include/save_master_gtid.inc
---connection server_2
-SET GLOBAL slave_parallel_mode=follow_master_commit;
---source include/start_slave.inc
---source include/sync_with_master_gtid.inc
-SELECT * FROM t2 WHERE a >= 40 ORDER BY a;
---source include/stop_slave.inc
-SET GLOBAL slave_parallel_mode='domain,follow_master_commit';
---source include/start_slave.inc
-
-
--echo *** MDEV-6775: Wrong binlog order in parallel replication ***
--connection server_1
# A bit tricky bug to reproduce. On the master, we binlog in statement-mode
@@ -1601,7 +1536,7 @@ SET GLOBAL slave_parallel_threads=10;
--echo *** MDEV-7237: Parallel replication: incorrect relaylog position after stop/start the slave ***
--connection server_1
-INSERT INTO t2 VALUES (50);
+INSERT INTO t2 VALUES (40);
--save_master_pos
--connection server_2
@@ -1622,28 +1557,28 @@ SET GLOBAL slave_parallel_threads=10;
--connection server_1
# Setup some transaction for the slave to replicate.
-INSERT INTO t2 VALUES (51);
-INSERT INTO t2 VALUES (52);
+INSERT INTO t2 VALUES (41);
+INSERT INTO t2 VALUES (42);
# Need to log the DELETE in statement format, so we can see it in processlist.
SET @old_format= @@binlog_format;
SET binlog_format= statement;
-DELETE FROM t2 WHERE a=50;
+DELETE FROM t2 WHERE a=40;
SET binlog_format= @old_format;
-INSERT INTO t2 VALUES (53);
-INSERT INTO t2 VALUES (54);
+INSERT INTO t2 VALUES (43);
+INSERT INTO t2 VALUES (44);
# Force the slave to switch to a new relay log file.
FLUSH LOGS;
-INSERT INTO t2 VALUES (55);
+INSERT INTO t2 VALUES (45);
# Inject a GTID 0-1-100, which will trigger a DEBUG_SYNC signal when this
# transaction has been fetched by a worker thread.
SET gtid_seq_no=100;
-INSERT INTO t2 VALUES (56);
+INSERT INTO t2 VALUES (46);
--save_master_pos
--connection con_temp2
# Temporarily block the DELETE on a=40 from completing.
BEGIN;
-SELECT * FROM t2 WHERE a=50 FOR UPDATE;
+SELECT * FROM t2 WHERE a=40 FOR UPDATE;
--connection server_2
@@ -1651,7 +1586,7 @@ SELECT * FROM t2 WHERE a=50 FOR UPDATE;
# Wait for a worker thread to start on the DELETE that will be blocked
# temporarily by the SELECT FOR UPDATE.
---let $wait_condition= SELECT count(*) > 0 FROM information_schema.processlist WHERE state='updating' and info LIKE '%DELETE FROM t2 WHERE a=50%'
+--let $wait_condition= SELECT count(*) > 0 FROM information_schema.processlist WHERE state='updating' and info LIKE '%DELETE FROM t2 WHERE a=40%'
--source include/wait_condition.inc
# The DBUG injection set above will make the worker thread signal the following
@@ -1684,13 +1619,13 @@ ROLLBACK;
--connection server_2
reap;
--source include/wait_for_slave_sql_to_stop.inc
-SELECT * FROM t2 WHERE a >= 50 ORDER BY a;
+SELECT * FROM t2 WHERE a >= 40 ORDER BY a;
# Now restart the slave. With the bug present, this would start at an
# incorrect relay log position, causing relay log read error (or if unlucky,
# silently skip a number of events).
--source include/start_slave.inc
--sync_with_master
-SELECT * FROM t2 WHERE a >= 50 ORDER BY a;
+SELECT * FROM t2 WHERE a >= 40 ORDER BY a;
--source include/stop_slave.inc
SET GLOBAL debug_dbug=@old_dbug;
SET DEBUG_SYNC= 'RESET';
@@ -1906,11 +1841,75 @@ SET GLOBAL slave_parallel_threads=0;
SET GLOBAL slave_parallel_threads=10;
--source include/start_slave.inc
+--echo *** MDEV-6676 - test syntax of @@slave_parallel_mode ***
+--connection server_2
+
+--let $status_items= Parallel_Mode
+--source include/show_slave_status.inc
+--source include/stop_slave.inc
+--error ER_INVALID_SLAVE_PARALLEL_MODE
+SET GLOBAL slave_parallel_mode='domain,follow_master_commit,transactional';
+SET GLOBAL slave_parallel_mode='waiting,transactional,domain';
+--let $status_items= Parallel_Mode
+--source include/show_slave_status.inc
+SET GLOBAL slave_parallel_mode='domain,follow_master_commit';
+--let $status_items= Parallel_Mode
+--source include/show_slave_status.inc
+
+
+--echo *** MDEV-6676 - test that empty parallel_mode does not replicate in parallel ***
+--connection server_1
+INSERT INTO t2 VALUES (1040);
+--source include/save_master_gtid.inc
+
+--connection server_2
+SET GLOBAL slave_parallel_mode='';
+# Test that we do not use parallel apply, by injecting an unconditional
+# crash in the parallel apply code.
+SET @old_dbug= @@GLOBAL.debug_dbug;
+SET GLOBAL debug_dbug="+d,slave_crash_if_parallel_apply";
+--source include/start_slave.inc
+--source include/sync_with_master_gtid.inc
+SELECT * FROM t2 WHERE a >= 1040 ORDER BY a;
+--source include/stop_slave.inc
+SET GLOBAL debug_dbug=@old_dbug;
+
+
+--echo *** MDEV-6676 - test disabling domain-based parallel replication ***
+--connection server_1
+# Let's do a bunch of transactions that will conflict if run out-of-order in
+# domain-based parallel replication mode.
+SET gtid_domain_id = 1;
+INSERT INTO t2 VALUES (1041);
+INSERT INTO t2 VALUES (1042);
+INSERT INTO t2 VALUES (1043);
+INSERT INTO t2 VALUES (1044);
+INSERT INTO t2 VALUES (1045);
+INSERT INTO t2 VALUES (1046);
+DELETE FROM t2 WHERE a >= 1041;
+SET gtid_domain_id = 2;
+INSERT INTO t2 VALUES (1041);
+INSERT INTO t2 VALUES (1042);
+INSERT INTO t2 VALUES (1043);
+INSERT INTO t2 VALUES (1044);
+INSERT INTO t2 VALUES (1045);
+INSERT INTO t2 VALUES (1046);
+SET gtid_domain_id = 0;
+--source include/save_master_gtid.inc
+--connection server_2
+SET GLOBAL slave_parallel_mode=follow_master_commit;
+--source include/start_slave.inc
+--source include/sync_with_master_gtid.inc
+SELECT * FROM t2 WHERE a >= 1040 ORDER BY a;
+--source include/stop_slave.inc
+SET GLOBAL slave_parallel_mode='domain,follow_master_commit';
+--source include/start_slave.inc
+
# Clean up.
--connection server_2
--source include/stop_slave.inc
-eval SET GLOBAL slave_parallel_threads=$old_parallel_threads;
+SET GLOBAL slave_parallel_threads=@old_parallel_threads;
--source include/start_slave.inc
SET DEBUG_SYNC= 'RESET';