diff options
author | Jan Lindström <jan.lindstrom@mariadb.com> | 2020-08-10 11:44:42 +0300 |
---|---|---|
committer | Jan Lindström <jan.lindstrom@mariadb.com> | 2020-08-14 13:35:42 +0300 |
commit | eab219d594fba26c3f8d9793e377c5ab7de61678 (patch) | |
tree | 83cc763b1f70b77fba199438261c741ea4a77c46 /sql/wsrep_sst.cc | |
parent | cf87f3e08c10dd7a944447ddee93fbc3827e6570 (diff) | |
download | mariadb-git-eab219d594fba26c3f8d9793e377c5ab7de61678.tar.gz |
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.
Diffstat (limited to 'sql/wsrep_sst.cc')
-rw-r--r-- | sql/wsrep_sst.cc | 14 |
1 files changed, 13 insertions, 1 deletions
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); +} |