#At file:///home/lsoares/Workspace/bzr/work/bugfixing/12370830/mysql-trunk/ based on revid:marc.alff@stripped
3096 Luis Soares 2011-05-17
BUG#12370830: RPL_CHECKSUM FAILED ON PB2 (SERVER CRASH)
The server crashes while trying to printout trace information
when compiled in debug mode. The problem seems to be the same
as the one reported in BUG#11765758, except that it happens in
another test case.
Fixed the test case by deploying the necessary synchronization
measures for slave threads before setting the debug variable.
modified:
mysql-test/suite/rpl/r/rpl_checksum.result
mysql-test/suite/rpl/t/rpl_checksum.test
=== modified file 'mysql-test/suite/rpl/r/rpl_checksum.result'
--- a/mysql-test/suite/rpl/r/rpl_checksum.result 2011-03-08 19:12:46 +0000
+++ b/mysql-test/suite/rpl/r/rpl_checksum.result 2011-05-17 22:52:04 +0000
@@ -68,6 +68,7 @@ Last_IO_Error = 'Got fatal error 1236 fr
select count(*) as zero from t1;
zero
0
+include/stop_slave.inc
set @@global.debug='';
include/start_slave.inc
set @@global.master_verify_checksum = 1;
@@ -84,12 +85,13 @@ include/wait_for_slave_io_error.inc [err
Last_IO_Error = 'Relay log write failure: could not queue event from master'
set @@global.debug='';
start slave io_thread;
-include/wait_for_slave_param.inc [Read_Master_Log_Pos]
+include/sync_slave_io_with_master.inc
set @@global.slave_sql_verify_checksum = 1;
set @@global.debug='d,simulate_checksum_test_failure';
start slave sql_thread;
include/wait_for_slave_sql_error.inc [errno=1593]
Last_SQL_Error = 'Error initializing relay log position: I/O error reading event at position 4'
+include/stop_slave.inc
set @@global.debug='';
include/start_slave.inc
select count(*) as 'must be zero' from t2;
=== modified file 'mysql-test/suite/rpl/t/rpl_checksum.test'
--- a/mysql-test/suite/rpl/t/rpl_checksum.test 2011-03-08 19:12:46 +0000
+++ b/mysql-test/suite/rpl/t/rpl_checksum.test 2011-05-17 22:52:04 +0000
@@ -108,6 +108,11 @@ source include/wait_for_slave_io_error.i
select count(*) as zero from t1;
###connection master;
+
+# *always* make sure the slave threads are stopped
+# or in waiting state before updating the global debug
+# variable (see BUG#11765758 for details).
+--source include/stop_slave.inc
set @@global.debug='';
connection slave;
@@ -145,27 +150,24 @@ start slave io_thread;
let $slave_io_errno= 1595; # ER_SLAVE_RELAY_LOG_WRITE_FAILURE
--let $show_slave_io_error= 1
source include/wait_for_slave_io_error.inc;
+# no need to stop the IO thread, it is already stopped
set @@global.debug='';
# to make IO thread re-read it again w/o the failure
start slave io_thread;
-let $slave_param= Read_Master_Log_Pos;
-let $slave_param_value= $pos_master;
-source include/wait_for_slave_param.inc;
+--connection master
+--source include/sync_slave_io_with_master.inc
# C3. Failure by SQL thread
# instruction to sql thread;
set @@global.slave_sql_verify_checksum = 1;
-
set @@global.debug='d,simulate_checksum_test_failure';
-
start slave sql_thread;
let $slave_sql_errno= 1593; # ER_SLAVE_FATAL_ERROR
--let $show_slave_sql_error= 1
source include/wait_for_slave_sql_error.inc;
-
+--source include/stop_slave.inc
# resuming SQL thread to parse out the event w/o the failure
-
set @@global.debug='';
source include/start_slave.inc;
Attachment: [text/bzr-bundle] bzr/luis.soares@oracle.com-20110517225204-w14yieiu5qfqwvdr.bundle
| Thread |
|---|
| • bzr commit into mysql-trunk branch (luis.soares:3096) Bug#12370830 | Luis Soares | 19 May |