List:Commits« Previous MessageNext Message »
From:Serge Kozlov Date:November 26 2009 11:33pm
Subject:bzr push into mysql-5.1-rep+2 branch (Serge.Kozlov:3146 to 3147) WL#4416
View as plain text  
 3147 Serge Kozlov	2009-11-27
      Backport for WL#4416
      added:
        mysql-test/include/wait_for_ndb_to_binlog.inc
      modified:
        mysql-test/extra/rpl_tests/rpl_row_blob.test
        mysql-test/extra/rpl_tests/rpl_row_func003.test
        mysql-test/extra/rpl_tests/rpl_row_sp003.test
        mysql-test/extra/rpl_tests/rpl_stm_000001.test
        mysql-test/extra/rpl_tests/rpl_trig004.test

 3146 Luis Soares	2009-11-24
      BUG#42150: binlog_start_comment.test failed: Error writing file 'UNOPENED'
      
      NOTE: backporting BUG#42150 into next-mr
            Includes latest Andrei's patch (see [2 Feb 18:40] Bugs System)
            and merge.test post-push fix (see [3 Feb 18:04] Bugs System)
      
      The reason of the bug appeared to be overreacting on absense of a
      binlog file although the file name had been presented in in the master
      binlog index file.
      By convention, there should have been only a warning printed and the rest of
      `reset master' logics completed.  This did not happen on windows
      due to incorrect value of my_errno returned from nt_share_delete().
            
      Fixed with correcting my_errno assignment in nt_share_delete() to be ENOENT in 
      he event of no binlog file. Some minor refactoring has been made.
      modified:
        mysys/my_delete.c

=== modified file 'mysql-test/extra/rpl_tests/rpl_row_blob.test'
--- a/mysql-test/extra/rpl_tests/rpl_row_blob.test	2007-06-18 13:36:10 +0000
+++ b/mysql-test/extra/rpl_tests/rpl_row_blob.test	2009-11-26 23:32:01 +0000
@@ -36,7 +36,7 @@ SELECT LENGTH(data) FROM test.t1 WHERE c
 save_master_pos;
 connection slave;
 sync_with_master; 
-sleep 5;
+--source include/wait_for_ndb_to_binlog.inc
 --echo
 --echo **** Data Insert Validation Slave Section test.t1 ****
 --echo
@@ -56,12 +56,10 @@ UPDATE t1 set data=repeat('c',17*1024) w
 --echo
 SELECT LENGTH(data) FROM test.t1 WHERE c1 = 1;
 SELECT LENGTH(data) FROM test.t1 WHERE c1 = 2;
-# Sleep is needed for NDB to allow time for
-# Injector thread to populate the bin log.
 save_master_pos;
 connection slave;
 sync_with_master; 
-sleep 5;
+--source include/wait_for_ndb_to_binlog.inc
 --echo
 --echo **** Data Update Validation Slave Section test.t1 ****
 --echo
@@ -132,7 +130,7 @@ FROM test.t2 WHERE c1=2;
 save_master_pos;
 connection slave;
 sync_with_master; 
-sleep 5;
+--source include/wait_for_ndb_to_binlog.inc
 --echo
 --echo **** Data Insert Validation Slave Section test.t2 ****
 --echo
@@ -155,12 +153,10 @@ SELECT c1, LENGTH(c2), SUBSTR(c2,1+2*900
 FROM test.t2 WHERE c1=1;
 SELECT c1, LENGTH(c2), SUBSTR(c2,1+2*900,2), LENGTH(c4), SUBSTR(c4,1+3*900,3)
 FROM test.t2 WHERE c1=2;
-# Sleep is needed for NDB to allow time for
-# Injector thread to populate the bin log.
 save_master_pos;
 connection slave;
 sync_with_master; 
-sleep 5;
+--source include/wait_for_ndb_to_binlog.inc
 --echo
 --echo **** Data Update Validation Slave Section test.t2 ****
 --echo

=== modified file 'mysql-test/extra/rpl_tests/rpl_row_func003.test'
--- a/mysql-test/extra/rpl_tests/rpl_row_func003.test	2007-06-18 13:36:10 +0000
+++ b/mysql-test/extra/rpl_tests/rpl_row_func003.test	2009-11-26 23:32:01 +0000
@@ -44,9 +44,10 @@ END|
 delimiter ;|
 
 INSERT INTO test.t1 VALUES (null,test.f1()),(null,test.f1()),(null,test.f1());
-sleep 6;
+let $wait_time= 6;
+--source include/wait_for_ndb_to_binlog.inc
 INSERT INTO test.t1 VALUES (null,test.f1()),(null,test.f1()),(null,test.f1());
-sleep 6;
+--source include/wait_for_ndb_to_binlog.inc
 
 #Select in this test are used for debugging
 #select * from test.t1;

=== modified file 'mysql-test/extra/rpl_tests/rpl_row_sp003.test'
--- a/mysql-test/extra/rpl_tests/rpl_row_sp003.test	2007-06-18 13:36:10 +0000
+++ b/mysql-test/extra/rpl_tests/rpl_row_sp003.test	2009-11-26 23:32:01 +0000
@@ -41,10 +41,7 @@ CALL test.p2();
 SELECT release_lock("test");
 SELECT * FROM test.t1; 
 #show binlog events;
-# Added sleep for use with NDB to ensure that
-# the injector thread will populate log before
-# we switch to the slave.
-sleep 5;
+--source include/wait_for_ndb_to_binlog.inc
 sync_slave_with_master;
 connection slave;
 SELECT * FROM test.t1;

=== modified file 'mysql-test/extra/rpl_tests/rpl_stm_000001.test'
--- a/mysql-test/extra/rpl_tests/rpl_stm_000001.test	2007-12-12 17:19:24 +0000
+++ b/mysql-test/extra/rpl_tests/rpl_stm_000001.test	2009-11-26 23:32:01 +0000
@@ -68,8 +68,8 @@ enable_query_log;
 connection slave;
 lock tables t1 read;
 start slave;
-#hope this is long enough for I/O thread to fetch over 16K relay log data
-sleep 3;
+connection master;
+--source include/sync_slave_io_with_master.inc
 unlock tables;
 
 #test handling of aborted connection in the middle of update

=== modified file 'mysql-test/extra/rpl_tests/rpl_trig004.test'
--- a/mysql-test/extra/rpl_tests/rpl_trig004.test	2007-06-06 17:57:07 +0000
+++ b/mysql-test/extra/rpl_tests/rpl_trig004.test	2009-11-26 23:32:01 +0000
@@ -35,9 +35,8 @@ INSERT INTO test.t2 VALUES (1, 0.0);
 #show binlog events; 
 select * from test.t1;
 select * from test.t2;
-# Have to sleep for a few seconds to allow 
-# NDB injector thread to populate binlog
-sleep 10;
+let $wait_time= 10;
+--source include/wait_for_ndb_to_binlog.inc
 sync_slave_with_master;
 connection slave;
 select * from test.t1;

=== added file 'mysql-test/include/wait_for_ndb_to_binlog.inc'
--- a/mysql-test/include/wait_for_ndb_to_binlog.inc	1970-01-01 00:00:00 +0000
+++ b/mysql-test/include/wait_for_ndb_to_binlog.inc	2009-11-26 23:32:01 +0000
@@ -0,0 +1,41 @@
+# ==== Purpose ====
+# 
+#   Several test primitives from mysql-test/extra/rpl_tests 
+# shared for test cases for MyISAM, InnoDB, NDB and other 
+# engines. But for NDB all events will be added by NDB 
+# injector and now there are no way to detect the state of 
+# NDB injector therefore this primitive waits 5 sec 
+# if engine type is NDB. 
+#   In future that should be fixed by waiting of proper 
+# state of NDB injector. 
+#
+# ==== Usage ====
+#
+# let $engine_type= NDB;
+# --source include/wait_for_ndb_to_binlog.inc
+#
+# ==== Parameters =====
+#
+# $engine_type
+#   Type of engine. If type is NDB then it waits $wait_time sec 
+#   
+# $wait_time
+#   Test will wait $wait_time seconds
+
+let $_wait_time= 5;
+
+if (!$wait_time) {
+  let $_wait_time= $wait_time;
+}
+
+if (`SELECT UPPER(LEFT('$engine_type',3)) = 'NDB'`) {
+  while (!$_wait_time) {
+    let $_wait_time_internal= 10;
+    while (!$_wait_time_internal) {
+      sleep 0.1;
+      dec $_wait_time_internal;
+    }
+    dec $_wait_time;
+  }
+}
+

Thread
bzr push into mysql-5.1-rep+2 branch (Serge.Kozlov:3146 to 3147) WL#4416Serge Kozlov27 Nov