summaryrefslogtreecommitdiff
path: root/mysql-test/include
diff options
context:
space:
mode:
authorDaniele Sciascia <daniele.sciascia@galeracluster.com>2018-04-20 14:44:27 +0200
committerDaniele Sciascia <daniele.sciascia@galeracluster.com>2018-04-20 14:44:27 +0200
commit9e5671f1cc190f9b9498eafcf858460a56ff3a38 (patch)
treeee5c69fb52fd77a87d12211dbfbad0e07b9a9f14 /mysql-test/include
parent3d1ad2a5e85284b5ec4bb28f744b93b0b73e3934 (diff)
downloadmariadb-git-9e5671f1cc190f9b9498eafcf858460a56ff3a38.tar.gz
MDEV-15948 Fix error "Lost connection to MySQL server..." in test galera_sst_mysqldump
Test galera_sst_mysqldump often fails with error "2013: Lost connection to MySQL server during query". The connection is lost after the test restart one of the nodes. This happens because the server closes client connections if it is joining a cluster through SST method mysqldump. On unlucky runs of the test it is possible that mysqld is restarted, and then mtr client is disconnected while it tries to determine if galera is ready before going on with the test. This patch rewrites galera_wait_ready.inc so that it is immune to being disconnected.
Diffstat (limited to 'mysql-test/include')
-rw-r--r--mysql-test/include/galera_wait_ready.inc34
1 files changed, 32 insertions, 2 deletions
diff --git a/mysql-test/include/galera_wait_ready.inc b/mysql-test/include/galera_wait_ready.inc
index e20f01fad90..cd06bae8207 100644
--- a/mysql-test/include/galera_wait_ready.inc
+++ b/mysql-test/include/galera_wait_ready.inc
@@ -1,2 +1,32 @@
-let $wait_condition = SELECT 1 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_ready' AND VARIABLE_VALUE = 'ON';
---source include/wait_condition.inc
+# include/galera_wait_ready.inc
+#
+# Waits for galera node to transition to READY state.
+#
+
+--enable_reconnect
+--disable_query_log
+--disable_result_log
+let $wait_counter = 300;
+while ($wait_counter)
+{
+ --disable_abort_on_error
+ let $success = `SELECT VARIABLE_VALUE = 'ON' FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_ready'`;
+ --enable_abort_on_error
+ if ($success)
+ {
+ let $wait_counter = 0;
+ }
+ if (!$success)
+ {
+ real_sleep 0.1;
+ dec $wait_counter;
+ }
+}
+
+if (!$success)
+{
+ die "Server did not transition to READY state";
+}
+--disable_reconnect
+--enable_query_log
+--enable_result_log