mirror of
https://github.com/MariaDB/server.git
synced 2025-01-19 05:22:25 +01:00
Postfix for BUG#49741
Add code to waiting for a set of errors. Add code to waiting for an error instead of waiting for io thread to stop, as after 'START SLAVE', the status of io thread is still not running. But it doesn't mean slave io thread encounters an error.
This commit is contained in:
parent
78c6a8ca30
commit
5873b972d9
3 changed files with 25 additions and 20 deletions
|
@ -68,19 +68,15 @@ eval SET DEBUG_SYNC=$debug_sync_action;
|
||||||
|
|
||||||
# Show slave last IO errno
|
# Show slave last IO errno
|
||||||
connection slave;
|
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
|
--echo Check network error happened here
|
||||||
if (`SELECT '$last_io_errno' = '2013' || # CR_SERVER_LOST
|
# '2013' CR_SERVER_LOST
|
||||||
'$last_io_errno' = '2003' || # CR_CONN_HOST_ERROR
|
# '2003' CR_CONN_HOST_ERROR
|
||||||
'$last_io_errno' = '2002' || # CR_CONNECTION_ERROR
|
# '2002' CR_CONNECTION_ERROR
|
||||||
'$last_io_errno' = '2006' || # CR_SERVER_GONE_ERROR
|
# '2006' CR_SERVER_GONE_ERROR
|
||||||
'$last_io_errno' = '1040' || # ER_CON_COUNT_ERROR
|
# '1040' ER_CON_COUNT_ERROR
|
||||||
'$last_io_errno' = '1053' # ER_SERVER_SHUTDOWN
|
# '1053' ER_SERVER_SHUTDOWN
|
||||||
`)
|
let $slave_io_errno= 1040, 1053, 2002, 2003, 2006, 2013;
|
||||||
{
|
source include/wait_for_slave_io_error.inc;
|
||||||
--echo NETWORK ERROR
|
|
||||||
}
|
|
||||||
|
|
||||||
# deactivate the sync point of get_master_version_and_clock()
|
# deactivate the sync point of get_master_version_and_clock()
|
||||||
# now to avoid restarting IO-thread to re-enter it.
|
# now to avoid restarting IO-thread to re-enter it.
|
||||||
|
|
|
@ -6,14 +6,21 @@
|
||||||
#
|
#
|
||||||
# ==== Usage ====
|
# ==== 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;
|
# source include/wait_for_slave_io_error.inc;
|
||||||
#
|
#
|
||||||
# Parameters:
|
# Parameters:
|
||||||
#
|
#
|
||||||
# $slave_io_errno
|
# $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
|
# (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
|
# $show_slave_io_error
|
||||||
# If set, will print the error to the query log.
|
# 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
|
--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 $old_slave_param_comparison= $slave_param_comparison;
|
||||||
let $slave_param_value= No;
|
let $slave_param= Last_IO_Errno;
|
||||||
let $slave_error_message= Failed while waiting for slave to stop the IO thread (expecting error in the IO thread);
|
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;
|
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);
|
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) ****
|
--echo **** Slave stopped with wrong error code: $_error (expected $slave_io_errno) ****
|
||||||
source include/show_rpl_debug_info.inc;
|
source include/show_rpl_debug_info.inc;
|
||||||
--echo **** Slave stopped with wrong error code: $_error (expected $slave_io_errno) ****
|
--echo **** Slave stopped with wrong error code: $_error (expected $slave_io_errno) ****
|
||||||
|
|
|
@ -14,7 +14,6 @@ slave is going to hang in get_master_version_and_clock
|
||||||
slave is unblocked
|
slave is unblocked
|
||||||
SET DEBUG_SYNC='now SIGNAL signal.get_unix_timestamp';
|
SET DEBUG_SYNC='now SIGNAL signal.get_unix_timestamp';
|
||||||
Check network error happened here
|
Check network error happened here
|
||||||
NETWORK ERROR
|
|
||||||
set @@global.debug = "-d,'debug_lock.before_get_UNIX_TIMESTAMP'";
|
set @@global.debug = "-d,'debug_lock.before_get_UNIX_TIMESTAMP'";
|
||||||
stop slave;
|
stop slave;
|
||||||
SET @@global.debug= "+d,'debug_lock.before_get_SERVER_ID'";
|
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
|
slave is unblocked
|
||||||
SET DEBUG_SYNC='now SIGNAL signal.get_server_id';
|
SET DEBUG_SYNC='now SIGNAL signal.get_server_id';
|
||||||
Check network error happened here
|
Check network error happened here
|
||||||
NETWORK ERROR
|
|
||||||
set @@global.debug = "-d,'debug_lock.before_get_SERVER_ID'";
|
set @@global.debug = "-d,'debug_lock.before_get_SERVER_ID'";
|
||||||
set global debug= '';
|
set global debug= '';
|
||||||
reset master;
|
reset master;
|
||||||
|
|
Loading…
Reference in a new issue