99 lines
2.4 KiB
PHP
99 lines
2.4 KiB
PHP
#
|
|
# Include this script to wait until the connection to the
|
|
# server has been restored or timeout occurs
|
|
#
|
|
# $wait_counter - can be set before calling the script, will be reset at the end
|
|
#
|
|
# $explicit_default_counter - can be set before calling the script,
|
|
# reset only at the end of the test, overrides $wait_counter
|
|
|
|
|
|
--disable_result_log
|
|
--disable_query_log
|
|
|
|
--let $counter= 1000
|
|
if ($explicit_default_counter)
|
|
{
|
|
--let $wait_counter= $explicit_default_counter
|
|
}
|
|
if ($VALGRIND_TEST) {
|
|
--let $wait_counter= 20000
|
|
}
|
|
if ($TSAN_OPTIONS) {
|
|
--let $wait_counter= 15000
|
|
}
|
|
if ($MTR_MANUAL_DEBUG) {
|
|
--let $counter = 864000
|
|
}
|
|
if ($wait_counter) {
|
|
--let $counter= $wait_counter
|
|
}
|
|
--let $mysql_errno= 9999
|
|
while ($mysql_errno)
|
|
{
|
|
|
|
# Strangely enough, the server might return "Too many connections"
|
|
# while being shutdown, thus 1040 is an "allowed" error
|
|
# See BUG#36228
|
|
--error 0,1040,1053,2002,2003,2006,2013,1045,ER_SECURE_TRANSPORT_REQUIRED,2016,2017
|
|
show session status;
|
|
if ($mysql_errno == 1045){
|
|
--let mysql_errno=0
|
|
}
|
|
if ($mysql_errname == ER_SECURE_TRANSPORT_REQUIRED){
|
|
--let mysql_errno=0
|
|
}
|
|
--dec $counter
|
|
if (!$counter)
|
|
{
|
|
--die Server failed to restart
|
|
}
|
|
--sleep 0.1
|
|
}
|
|
|
|
if ($SECONDARY_ENGINE_TEST) {
|
|
--let $counter = 100
|
|
--let $secondary_engine_status = OFF
|
|
|
|
while ($secondary_engine_status == OFF) {
|
|
--let $secondary_engine_status = query_get_value($SECONDARY_ENGINE_STATUS_QUERY, Value, 1)
|
|
--dec $counter
|
|
|
|
if (!$counter) {
|
|
--die Secondary engine server is not running or it is not bootstrapped
|
|
}
|
|
|
|
--sleep 0.1
|
|
}
|
|
|
|
--sleep 0.1
|
|
|
|
# Wait till the tables get loaded into secondary engine
|
|
--perl
|
|
my $wait_file= "$ENV{MYSQLTEST_VARDIR}/tmp/wait_until_load";
|
|
while (-e $wait_file) {
|
|
select(undef, undef, undef, (100 / 1000));
|
|
}
|
|
EOF
|
|
}
|
|
|
|
# wait leader election
|
|
--sleep 1
|
|
let $wait_timeout= 60;
|
|
let $wait_condition= select count(*)=1 from information_schema.alisql_cluster_local where role='leader';
|
|
--source include/wait_condition.inc
|
|
|
|
# wait leader enable read/write
|
|
let $wait_timeout= 60;
|
|
let $wait_condition= select SERVER_READY_FOR_RW='Yes' from information_schema.alisql_cluster_local;
|
|
--source include/wait_condition.inc
|
|
|
|
# Reset $wait_counter so that its value won't be used on subsequent
|
|
# calls, and default will be used instead.
|
|
if (!$explicit_default_counter)
|
|
{
|
|
--let $wait_counter= 0
|
|
}
|
|
--enable_query_log
|
|
--enable_result_log
|