diff options
3 files changed, 25 insertions, 20 deletions
diff --git a/mysql-test/extra/rpl_tests/rpl_get_master_version_and_clock.test b/mysql-test/extra/rpl_tests/rpl_get_master_version_and_clock.test index 6e750d57c56..66bd61a8ea9 100644 --- a/mysql-test/extra/rpl_tests/rpl_get_master_version_and_clock.test +++ b/mysql-test/extra/rpl_tests/rpl_get_master_version_and_clock.test @@ -68,19 +68,15 @@ eval SET DEBUG_SYNC=$debug_sync_action; # Show slave last IO errno connection slave; -source include/wait_for_slave_io_to_stop.inc; -let $last_io_errno= query_get_value("show slave status", Last_IO_Errno, 1); --echo Check network error happened here -if (`SELECT '$last_io_errno' = '2013' || # CR_SERVER_LOST - '$last_io_errno' = '2003' || # CR_CONN_HOST_ERROR - '$last_io_errno' = '2002' || # CR_CONNECTION_ERROR - '$last_io_errno' = '2006' || # CR_SERVER_GONE_ERROR - '$last_io_errno' = '1040' || # ER_CON_COUNT_ERROR - '$last_io_errno' = '1053' # ER_SERVER_SHUTDOWN - `) -{ - --echo NETWORK ERROR -} +# '2013' CR_SERVER_LOST +# '2003' CR_CONN_HOST_ERROR +# '2002' CR_CONNECTION_ERROR +# '2006' CR_SERVER_GONE_ERROR +# '1040' ER_CON_COUNT_ERROR +# '1053' ER_SERVER_SHUTDOWN +let $slave_io_errno= 1040, 1053, 2002, 2003, 2006, 2013; +source include/wait_for_slave_io_error.inc; # deactivate the sync point of get_master_version_and_clock() # now to avoid restarting IO-thread to re-enter it. diff --git a/mysql-test/include/wait_for_slave_io_error.inc b/mysql-test/include/wait_for_slave_io_error.inc index 101df69730c..34cbf20a73b 100644 --- a/mysql-test/include/wait_for_slave_io_error.inc +++ b/mysql-test/include/wait_for_slave_io_error.inc @@ -6,14 +6,21 @@ # # ==== Usage ==== # +# # Wait several errors. +# let $slave_io_errno= 1, 2, 3; +# source include/wait_for_slave_io_error.inc; +# +# # Print error message +# let $slave_io_errno= 1; +# let $show_slave_io_error= 1; # source include/wait_for_slave_io_error.inc; # # Parameters: # # $slave_io_errno -# The expected IO error number. This is required. +# The expected IO error numbers. This is required. # (After BUG#41956 has been fixed, this will be required to be a -# symbolic name instead of a number.) +# symbolic name instead of a numbers.) # # $show_slave_io_error # If set, will print the error to the query log. @@ -28,13 +35,17 @@ if (`SELECT '$slave_io_errno' = ''`) { --die !!!ERROR IN TEST: you must set \$slave_io_errno before sourcing wait_for_slave_io_error.inc } -let $slave_param= Slave_IO_Running; -let $slave_param_value= No; -let $slave_error_message= Failed while waiting for slave to stop the IO thread (expecting error in the IO thread); +let $old_slave_param_comparison= $slave_param_comparison; +let $slave_param= Last_IO_Errno; +let $slave_param_comparison= !=; +let $slave_param_value= 0; +let $slave_error_message= Failed while waiting for slave to produce an error in its sql thread; source include/wait_for_slave_param.inc; +let $slave_error_message= ; +let $slave_param_comparison= $old_slave_param_comparison; let $_error= query_get_value(SHOW SLAVE STATUS, Last_IO_Errno, 1); -if (`SELECT '$_error' != '$slave_io_errno'`) { +if (`SELECT $_error NOT IN ($slave_io_errno)`) { --echo **** Slave stopped with wrong error code: $_error (expected $slave_io_errno) **** source include/show_rpl_debug_info.inc; --echo **** Slave stopped with wrong error code: $_error (expected $slave_io_errno) **** diff --git a/mysql-test/suite/rpl/r/rpl_get_master_version_and_clock.result b/mysql-test/suite/rpl/r/rpl_get_master_version_and_clock.result index 6d3e73f787d..432bcfcc94d 100644 --- a/mysql-test/suite/rpl/r/rpl_get_master_version_and_clock.result +++ b/mysql-test/suite/rpl/r/rpl_get_master_version_and_clock.result @@ -14,7 +14,6 @@ slave is going to hang in get_master_version_and_clock slave is unblocked SET DEBUG_SYNC='now SIGNAL signal.get_unix_timestamp'; Check network error happened here -NETWORK ERROR set @@global.debug = "-d,'debug_lock.before_get_UNIX_TIMESTAMP'"; stop slave; SET @@global.debug= "+d,'debug_lock.before_get_SERVER_ID'"; @@ -23,7 +22,6 @@ slave is going to hang in get_master_version_and_clock slave is unblocked SET DEBUG_SYNC='now SIGNAL signal.get_server_id'; Check network error happened here -NETWORK ERROR set @@global.debug = "-d,'debug_lock.before_get_SERVER_ID'"; set global debug= ''; reset master; |