Commit b5371583 authored by Luis Soares's avatar Luis Soares

BUG#44270: Post-push fix

The test case added failed sporadically on PB. This is due to the
fact that the user thread in some cases is waiting for slave IO
to stop and then check the error number. Thence, sometimes the
user thread would race for the error number with IO thread.

This post push fix addresses this by replacing the wait for slave
io to stop with a wait for slave io error (as it seems it was
added in 6.0 also after patch on which this is based was
pushed). This implied backporting wait_for_slave_io_error.inc
from 6.0 also.
parent 26c4e642
...@@ -58,7 +58,7 @@ echo *** errno must be zero: $last_io_errno ***; ...@@ -58,7 +58,7 @@ echo *** errno must be zero: $last_io_errno ***;
change master to master_user='impossible_user_name'; change master to master_user='impossible_user_name';
start slave; start slave;
source include/wait_for_slave_io_to_stop.inc; source include/wait_for_slave_io_error.inc;
let $last_io_errno= query_get_value(SHOW SLAVE STATUS, Last_IO_Errno, 1); let $last_io_errno= query_get_value(SHOW SLAVE STATUS, Last_IO_Errno, 1);
--disable_query_log --disable_query_log
eval SELECT $last_io_errno > 0 as ONE; eval SELECT $last_io_errno > 0 as ONE;
...@@ -79,7 +79,7 @@ let $last_io_error= query_get_value(SHOW SLAVE STATUS, Last_IO_Error, 1); ...@@ -79,7 +79,7 @@ let $last_io_error= query_get_value(SHOW SLAVE STATUS, Last_IO_Error, 1);
source include/stop_slave.inc; source include/stop_slave.inc;
change master to master_user='impossible_user_name'; change master to master_user='impossible_user_name';
start slave; start slave;
source include/wait_for_slave_io_to_stop.inc; source include/wait_for_slave_io_error.inc;
let $last_io_errno= query_get_value(SHOW SLAVE STATUS, Last_IO_Errno, 1); let $last_io_errno= query_get_value(SHOW SLAVE STATUS, Last_IO_Errno, 1);
--disable_query_log --disable_query_log
eval SELECT $last_io_errno > 0 as ONE; eval SELECT $last_io_errno > 0 as ONE;
......
# ==== Purpose ====
#
# Waits until the IO thread of the current connection has got an
# error, or until a timeout is reached.
#
# ==== Usage ====
#
# source include/wait_for_slave_io_error.inc;
#
# Parameters to this macro are $slave_timeout and
# $slave_keep_connection. See wait_for_slave_param.inc for
# descriptions.
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;
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment