[Commits] Rev 4520: MDEV-7037: MariaDB 10.0 does not build on Debian / kfreebsd-i386/amd64 due to MTR failure: multi_source.gtid in http://bazaar.launchpad.net/~maria-captains/maria/10.0

knielsen at knielsen-hq.org knielsen at knielsen-hq.org
Thu Nov 27 10:34:42 EET 2014


At http://bazaar.launchpad.net/~maria-captains/maria/10.0

------------------------------------------------------------
revno: 4520
revision-id: knielsen at knielsen-hq.org-20141127083441-g57kksf1xf7kyflj
parent: bar at mnogosearch.org-20141127074722-17l4rtzsxhbiejd4
committer: Kristian Nielsen <knielsen at knielsen-hq.org>
branch nick: work-10.0
timestamp: Thu 2014-11-27 09:34:41 +0100
message:
  MDEV-7037: MariaDB 10.0 does not build on Debian / kfreebsd-i386/amd64 due to MTR failure: multi_source.gtid
  MDEV-7106: Sporadic test failure in multi_source.gtid
  MDEV-7153: Yet another sporadic failure of multi_source.gtid in buildbot
  
  This patch fixes three races in the multi_source.gtid test case that could
  cause sporadic failures:
  
  1. Do not put SHOW ALL SLAVES STATUS in the output, the output is not stable.
  
  2. Ensure that slave1 has replicated as far as expected, before stopping its
  connection to master1 (otherwise the following wait will time out due to rows
  not replicated from master1).
  
  3. Ensure that slave2 has replicated far enough before connecting slave1 to it
  (otherwise we get an error during connect that slave1 is ahead of slave2).
=== modified file 'mysql-test/suite/multi_source/gtid.result'
--- a/mysql-test/suite/multi_source/gtid.result	2014-09-11 19:42:35 +0000
+++ b/mysql-test/suite/multi_source/gtid.result	2014-11-27 08:34:41 +0000
@@ -26,59 +26,6 @@ SET SQL_LOG_BIN=0;
 CREATE TABLE t3 (a INT PRIMARY KEY, b VARCHAR(10));
 SET SQL_LOG_BIN=1;
 INSERT INTO t3 VALUES (201, "initial 2");
-SHOW ALL SLAVES STATUS;
-Connection_name 
-Slave_SQL_State Slave has read all relay log; waiting for the slave I/O thread to update it
-Slave_IO_State  Waiting for master to send event
-Master_Host     127.0.0.1
-Master_User     root
-Master_Port     MYPORT_3
-Connect_Retry   60
-Master_Log_File server3-bin.000001
-Read_Master_Log_Pos     1501
-Relay_Log_File  mysqld-relay-bin.000002
-Relay_Log_Pos   1790
-Relay_Master_Log_File   server3-bin.000001
-Slave_IO_Running        Yes
-Slave_SQL_Running       Yes
-Replicate_Do_DB 
-Replicate_Ignore_DB     
-Replicate_Do_Table      
-Replicate_Ignore_Table  
-Replicate_Wild_Do_Table 
-Replicate_Wild_Ignore_Table     
-Last_Errno      0
-Last_Error      
-Skip_Counter    0
-Exec_Master_Log_Pos     1501
-Relay_Log_Space 2088
-Until_Condition None
-Until_Log_File  
-Until_Log_Pos   0
-Master_SSL_Allowed      No
-Master_SSL_CA_File      
-Master_SSL_CA_Path      
-Master_SSL_Cert 
-Master_SSL_Cipher       
-Master_SSL_Key  
-Seconds_Behind_Master   0
-Master_SSL_Verify_Server_Cert   No
-Last_IO_Errno   0
-Last_IO_Error   
-Last_SQL_Errno  0
-Last_SQL_Error  
-Replicate_Ignore_Server_Ids     
-Master_Server_Id        3
-Master_SSL_Crl  
-Master_SSL_Crlpath      
-Using_Gtid      No
-Gtid_IO_Pos     
-Retried_transactions    0
-Max_relay_log_size      1073741824
-Executed_log_entries    25
-Slave_received_heartbeats       0
-Slave_heartbeat_period  60.000
-Gtid_Slave_Pos  1-1-4,2-2-3
 *** Now move slave2 to replicate from both master1 and master2 instead of just slave1 ***
 STOP ALL SLAVES;
 Warnings:
@@ -102,9 +49,11 @@ INSERT INTO t1 VALUES (3, "switch 2");
 INSERT INTO t3 VALUES (103, "switch 2 a");
 INSERT INTO t2 VALUES (3, "switch 2");
 INSERT INTO t3 VALUES (203, "switch 2 b");
+include/save_master_gtid.inc
 STOP SLAVE 'slave2';
 INSERT INTO t2 VALUES (4, "switch 3");
 INSERT INTO t3 VALUES (204, "switch 3 b");
+include/sync_with_master_gtid.inc
 CHANGE MASTER TO master_port=MYPORT_4, master_host='127.0.0.1', master_user='root', master_use_gtid=current_pos;
 START SLAVE;
 SELECT * FROM t1 ORDER BY a;

=== modified file 'mysql-test/suite/multi_source/gtid.test'
--- a/mysql-test/suite/multi_source/gtid.test	2014-09-11 19:42:35 +0000
+++ b/mysql-test/suite/multi_source/gtid.test	2014-11-27 08:34:41 +0000
@@ -58,8 +58,6 @@ INSERT INTO t3 VALUES (201, "initial 2")
 --source include/wait_condition.inc
 --let $wait_condition= SELECT (SELECT COUNT(*) FROM t1)=1 AND (SELECT COUNT(*) FROM t2)=1 AND (SELECT COUNT(*) FROM t3)=2
 --source include/wait_condition.inc
---replace_result $SERVER_MYPORT_3 MYPORT_3
-query_vertical SHOW ALL SLAVES STATUS;
 
 --echo *** Now move slave2 to replicate from both master1 and master2 instead of just slave1 ***
 STOP ALL SLAVES;
@@ -93,6 +91,8 @@ set default_master_connection = '';
 --connection slave1
 # Set up so that slave1 will have to start from two different positions
 # in the slave2 binlog (one for each domain_id).
+--let $wait_condition= SELECT (SELECT COUNT(*) FROM t1)=2 AND (SELECT COUNT(*) FROM t2)=2 AND (SELECT COUNT(*) FROM t3)=4
+--source include/wait_condition.inc
 STOP SLAVE 'slave1';
 
 --connection master1
@@ -106,6 +106,7 @@ INSERT INTO t3 VALUES (103, "switch 2 a"
 --connection master2
 INSERT INTO t2 VALUES (3, "switch 2");
 INSERT INTO t3 VALUES (203, "switch 2 b");
+--source include/save_master_gtid.inc
 
 --connection slave1
 --let $wait_condition= SELECT (SELECT COUNT(*) FROM t1)=2 AND (SELECT COUNT(*) FROM t2)=3 AND (SELECT COUNT(*) FROM t3)=5
@@ -116,6 +117,12 @@ STOP SLAVE 'slave2';
 INSERT INTO t2 VALUES (4, "switch 3");
 INSERT INTO t3 VALUES (204, "switch 3 b");
 
+--connection slave2
+# Make sure that slave2 has replicated far enough before connecting slave1 to
+# it (otherwise we get an error that slave1 requested to start from a GTID
+# which is not in slave2's binlogs).
+--source include/sync_with_master_gtid.inc
+
 --connection slave1
 --replace_result $SERVER_MYPORT_4 MYPORT_4 
 eval CHANGE MASTER TO master_port=$SERVER_MYPORT_4, master_host='127.0.0.1', master_user='root', master_use_gtid=current_pos;



More information about the commits mailing list