mirror of
https://github.com/MariaDB/server.git
synced 2025-05-25 13:42:52 +03:00
wait_until_connected_again issues 'SHOW STATUS' query repeatedly until mysqld replies without errors. However, SHOW STATUS is treated specially by wsrep in that it is allowed to proceed even if wsrep is not yet in ready state. As a consequence, after returning from wait_until_connected_again, wsrep may not be ready yet and subsequent queries may fail with error "1047 WSREP has not yet prepared node for application use". To avoid those errors, the patch includes wait_wsrep_ready.inc at the end of the wait_until_connected_again.
35 lines
890 B
PHP
35 lines
890 B
PHP
#
|
|
# Include this script to wait until the connection to the
|
|
# server has been restored or timeout occurs.
|
|
# You should have done --enable_reconnect first
|
|
# When you change this file you may have to chance its cousin
|
|
# wait_until_disconnected.inc
|
|
|
|
--disable_result_log
|
|
--disable_query_log
|
|
let $counter= 5000;
|
|
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,1205,2002,2003,2005,2006,2013,1927
|
|
show status;
|
|
|
|
dec $counter;
|
|
if (!$counter)
|
|
{
|
|
--die Server failed to restart
|
|
}
|
|
--sleep 0.1
|
|
}
|
|
--enable_query_log
|
|
--enable_result_log
|
|
|
|
# WSREP: SHOW STATUS queries are allowed even if wsrep
|
|
# is not ready. Make sure wsrep is ready before
|
|
# returning from this script
|
|
|
|
--source include/wait_wsrep_ready.inc
|