mirror of
https://github.com/MariaDB/server.git
synced 2025-04-29 21:37:04 +03:00
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.
60 lines
1.9 KiB
PHP
60 lines
1.9 KiB
PHP
# ==== Purpose ====
|
|
#
|
|
# Waits until the IO thread of the current connection has got an
|
|
# error, or until a timeout is reached. Also waits until the IO
|
|
# thread has completely stopped.
|
|
#
|
|
# ==== 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 numbers. This is required.
|
|
# (After BUG#41956 has been fixed, this will be required to be a
|
|
# symbolic name instead of a numbers.)
|
|
#
|
|
# $show_slave_io_error
|
|
# If set, will print the error to the query log.
|
|
#
|
|
# $slave_timeout
|
|
# See wait_for_slave_param.inc for description.
|
|
#
|
|
# $master_connection
|
|
# See wait_for_slave_param.inc for description.
|
|
|
|
if (`SELECT '$slave_io_errno' = ''`) {
|
|
--die !!!ERROR IN TEST: you must set \$slave_io_errno before sourcing wait_for_slave_io_error.inc
|
|
}
|
|
|
|
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 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) ****
|
|
--die Slave stopped with wrong error code
|
|
}
|
|
|
|
if ($show_slave_io_error)
|
|
{
|
|
let $error= query_get_value("SHOW SLAVE STATUS", Last_IO_Error, 1);
|
|
echo Last_IO_Error = $error;
|
|
}
|