From eab219d594fba26c3f8d9793e377c5ab7de61678 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Lindstr=C3=B6m?= Date: Mon, 10 Aug 2020 11:44:42 +0300 Subject: MDEV-22543 : Galera SST donation fails, FLUSH TABLES WITH READ LOCK times out During SST we need to let FTWRL to use normal timeout method even when client is disconnected. --- sql/wsrep_sst.cc | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'sql/wsrep_sst.cc') diff --git a/sql/wsrep_sst.cc b/sql/wsrep_sst.cc index 93b7bc74489..444fb98c4b9 100644 --- a/sql/wsrep_sst.cc +++ b/sql/wsrep_sst.cc @@ -54,6 +54,7 @@ my_bool wsrep_sst_donor_rejects_queries= FALSE; bool sst_joiner_completed = false; bool sst_donor_completed = false; +bool sst_needed = false; struct sst_thread_arg { @@ -307,6 +308,7 @@ bool wsrep_before_SE() && strcmp (wsrep_sst_method, WSREP_SST_MYSQLDUMP)); } +static bool sst_in_progress = false; // Signal end of SST static void wsrep_sst_complete (THD* thd, int const rcode) @@ -1625,7 +1627,10 @@ static void* sst_donor_thread (void* a) char out_buf[out_len]; wsrep_uuid_t ret_uuid= WSREP_UUID_UNDEFINED; - wsrep_seqno_t ret_seqno= WSREP_SEQNO_UNDEFINED; // seqno of complete SST + // seqno of complete SST + wsrep_seqno_t ret_seqno= WSREP_SEQNO_UNDEFINED; + // SST is now in progress + sst_in_progress= true; wsp::thd thd(FALSE); // we turn off wsrep_on for this THD so that it can // operate with wsrep_ready == OFF @@ -1731,6 +1736,8 @@ wait_signal: proc.wait(); wsrep_donor_monitor_end(); + sst_in_progress= false; + return NULL; } @@ -1884,3 +1891,8 @@ int wsrep_sst_donate(const std::string& msg, return (ret >= 0 ? 0 : 1); } + +bool wsrep_is_sst_progress() +{ + return (sst_in_progress); +} -- cgit v1.2.1