MySQL Lists are EOL. Please join:

List:Commits« Previous MessageNext Message »
From:Sven Sandberg Date:October 10 2007 4:11pm
Subject:bk commit into 5.1 tree (sven:1.2571) BUG#29046
View as plain text  
Below is the list of changes that have just been committed into a local
5.1 repository of sven. When sven does a push these changes will
be propagated to the main repository and, within 24 hours after the
push, to the public repository.
For information on how to access the public repository
see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html

ChangeSet@stripped, 2007-10-10 18:10:54+02:00, sven@murkla.(none) +2 -0
  BUG#29046: rpl_stm_mystery22 unstable
  
  Problem: rpl_stm_mystery22 is unstable.
  
  Reason: At one place, the test case *should* wait until the SQL thread on the
  slave receives an error, but instead it waits until the SQL thread stops. The
  SQL thread may stop before the error flag is set, so that when the test case
  continues to execute, the error flag is not set.
  
  Fix: Introduce the subroutine mysql-test/include/wait_for_slave_sql_error.inc,
  which waits until there is an error in the sql thread of the slave.
  
  Re-commit: fixed one logical error and two smaller things noted by Mats.

  mysql-test/include/wait_for_slave_sql_error.inc@stripped, 2007-10-10 18:10:51+02:00, sven@murkla.(none) +33 -0
    New BitKeeper file ``mysql-test/include/wait_for_slave_sql_error.inc''
    This is a subroutine that waits until the sql thread on the slave receives an
    error, as indicated by Last_SQL_Errno in "SHOW SLAVE STATUS".

  mysql-test/include/wait_for_slave_sql_error.inc@stripped, 2007-10-10 18:10:51+02:00, sven@murkla.(none) +0 -0

  mysql-test/suite/rpl/t/rpl_stm_mystery22.test@stripped, 2007-10-10 18:10:51+02:00, sven@murkla.(none) +1 -1
    Use the new wait_for_slave_sql_error.inc instead of wait_for_slave_to_stop.
    There may be a delay from when the slave stops to when Last_SQL_Errno is set,
    so it is not safe to merely wait until the slave stops.

diff -Nrup a/mysql-test/include/wait_for_slave_sql_error.inc b/mysql-test/include/wait_for_slave_sql_error.inc
--- /dev/null	Wed Dec 31 16:00:00 196900
+++ b/mysql-test/include/wait_for_slave_sql_error.inc	2007-10-10 18:10:51 +02:00
@@ -0,0 +1,33 @@
+###################################################
+#Author: Sven
+#Date: 2007-10-09
+#Purpose: Wait until the slave has an error in the
+#         sql thread, as indicated by
+#         "SHOW SLAVE STATUS", or at most 30
+#         seconds.
+#Details:
+#      1) Fill in and setup variables
+#      2) loop, looking for sql error on slave
+#      3) If it loops too long, die.
+####################################################
+connection slave;
+let $row_number= 1;
+let $run= 1;
+let $counter= 300;
+
+while ($run)
+{
+  let $sql_result= query_get_value("SHOW SLAVE STATUS", Last_SQL_Errno, $row_number);
+  let $run= `SELECT '$sql_result' = '0'`;
+  if ($run) {
+    real_sleep 0.1;
+    if (!$counter){
+      --echo "Failed while waiting for slave to produce an error in its sql thread"
+      --replace_result $MASTER_MYPORT MASTER_PORT
+      --replace_column 1 # 7 # 8 # 9 # 22 # 23 # 33 #
+      query_vertical SHOW SLAVE STATUS;
+      exit;
+    }
+    dec $counter;
+  }
+}
diff -Nrup a/mysql-test/suite/rpl/t/rpl_stm_mystery22.test b/mysql-test/suite/rpl/t/rpl_stm_mystery22.test
--- a/mysql-test/suite/rpl/t/rpl_stm_mystery22.test	2007-06-27 14:27:23 +02:00
+++ b/mysql-test/suite/rpl/t/rpl_stm_mystery22.test	2007-10-10 18:10:51 +02:00
@@ -28,7 +28,7 @@ insert into t1 values(NULL,'new');
 save_master_pos;
 connection slave;
 # wait until the slave tries to run the query, fails and aborts slave thread
-wait_for_slave_to_stop;
+source include/wait_for_slave_sql_error.inc;
 select * from t1 order by n;
 delete from t1 where n = 2;
 --disable_warnings
Thread
bk commit into 5.1 tree (sven:1.2571) BUG#29046Sven Sandberg10 Oct