List:Commits« Previous MessageNext Message »
From:Sven Sandberg Date:July 16 2008 6:49pm
Subject:bzr commit into mysql-5.1 branch (sven:2703) Bug#38178
View as plain text  
#At file:///home/sven/bzr/b38178-rpl_loaddata_map/5.1-rpl-merge/

 2703 Sven Sandberg	2008-07-16
      BUG#38178: rpl_loaddata_map fails sporadically in pushbuild
      Problem: master binlog has 'create table t1'. Master binlog
      was removed before slave could replicate it. In test's cleanup
      code, master did 'drop table t1', which caused slave sql
      thread to stop with an error since slave sql thread did not
      know about t1.
      Fix: t1 is just an auxiliary construction, only needed on
      master. Hence, we turn off binlogging before t1 is created,
      drop t1 as soon as we don't need it anymore, and then turn
      on binlogging again.
modified:
  mysql-test/suite/rpl/t/rpl_loaddata_map.test

per-file messages:
  mysql-test/suite/rpl/t/rpl_loaddata_map.test
    Turned off binlogging while t1 is used, drop t1 as soon
    as we don't need it anymore, and turn on binlogging again.
    Also added some comments.
=== modified file 'mysql-test/suite/rpl/t/rpl_loaddata_map.test'
--- a/mysql-test/suite/rpl/t/rpl_loaddata_map.test	2008-02-05 13:52:20 +0000
+++ b/mysql-test/suite/rpl/t/rpl_loaddata_map.test	2008-07-16 16:49:07 +0000
@@ -1,7 +1,16 @@
+# ==== Purpose ====
 #
 #  check replication of load data with the server parameters subjected to
 #  read_buffer_size > max_allowed_packet
 #
+# ==== Implementation ====
+#
+# Insert many rows into t1, write t1 to file.
+# Load the file into t2.
+# See that t2 came out as expected on slave.
+#
+# ==== Related Bugs ====
+#
 #  BUG#30435 loading large LOAD DATA INFILE breaks slave with 
 #            read_buffer_size set on master
 #  BUG#33413 show binlog events fails if binlog has event size of close
@@ -10,9 +19,17 @@
 source include/have_binlog_format_mixed_or_statement.inc;
 source include/master-slave.inc;
 source include/have_innodb.inc;
-source include/have_binlog_format_mixed_or_statement.inc;
+
+
+--echo ==== Create a big file ====
+
+# We turn off binlogging to avoid too much noise in the binlog. t1 is
+# just an auxiliary construction anyways, it is not needed on the
+# slave.
 
 --disable_query_log
+SET @@global.sql_log_bin= 0;
+
 let $rows= 5000;
 create table t1 (id int not null primary key auto_increment);
 
@@ -22,10 +39,13 @@ while($rows)
   dec $rows;
 }
 eval select * into outfile '$MYSQLTEST_VARDIR/tmp/bug30435_5k.txt' from t1;
-flush logs;
+
+DROP TABLE t1;
+SET @@global.old_sql_log_bin= 1;
 --enable_query_log
 
-connection master;
+
+--echo ==== Load our big file into a table ====
 create table t2 (id int not null primary key auto_increment);
 
 select @@session.read_buffer_size - @@session.max_allowed_packet > 0 ;
@@ -34,7 +54,7 @@ select @@session.read_buffer_size - @@se
 eval load data infile '$MYSQLTEST_VARDIR/tmp/bug30435_5k.txt' into table t2;
 select count(*) from t2 /* 5 000 */;
 
-# the binglog will show fragmented Append_block events
+# the binlog will show fragmented Append_block events
 --let $binlog_start=106
 --replace_column 2 # 4 # 5 #
 --replace_regex /\/\* xid=.* \*\//\/* XID *\// /file_id=[0-9]+/file_id=#/ /block_len=[0-9]+/block_len=#/
@@ -42,13 +62,17 @@ select count(*) from t2 /* 5 000 */;
 --eval show binlog events in 'master-bin.000002' from $binlog_start
 
 
+--echo ==== Verify results on slave ====
+
+--echo [on slave]
 sync_slave_with_master;
-#connection slave;
 select count(*) from t2 /* 5 000 */;
 
+
+--echo ==== Clean up ====
+
+--echo [on master]
 connection master;
-drop table t1, t2;
+drop table t2;
 sync_slave_with_master;
 remove_file $MYSQLTEST_VARDIR/tmp/bug30435_5k.txt;
-
---echo end of the tests

Thread
bzr commit into mysql-5.1 branch (sven:2703) Bug#38178Sven Sandberg16 Jul