diff options
author | Marko Mäkelä <marko.makela@mariadb.com> | 2019-01-06 17:43:02 +0200 |
---|---|---|
committer | Marko Mäkelä <marko.makela@mariadb.com> | 2019-01-06 17:43:02 +0200 |
commit | 734510a44d690dfb94264e1d2775ee1cb6f3ebb9 (patch) | |
tree | 0ccc317bf9462ca95cd1277b4ce65a7fda5fe315 /sql/wsrep_sst.cc | |
parent | 2465d3e00b2f18c7d4967f9bb10438883682787d (diff) | |
parent | faf206a848684bc0f87c93a2b47a55063bbccc6c (diff) | |
download | mariadb-git-734510a44d690dfb94264e1d2775ee1cb6f3ebb9.tar.gz |
Merge 10.3 into 10.4
Diffstat (limited to 'sql/wsrep_sst.cc')
-rw-r--r-- | sql/wsrep_sst.cc | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/sql/wsrep_sst.cc b/sql/wsrep_sst.cc index 24306e37ca3..0a2424fa069 100644 --- a/sql/wsrep_sst.cc +++ b/sql/wsrep_sst.cc @@ -803,6 +803,7 @@ ssize_t wsrep_sst_prepare (void** msg) { const char* addr_in= NULL; const char* addr_out= NULL; + const char* method; if (!strcmp(wsrep_sst_method, WSREP_SST_SKIP)) { @@ -861,7 +862,8 @@ ssize_t wsrep_sst_prepare (void** msg) } ssize_t addr_len= -ENOSYS; - if (!strcmp(wsrep_sst_method, WSREP_SST_MYSQLDUMP)) + method = wsrep_sst_method; + if (!strcmp(method, WSREP_SST_MYSQLDUMP)) { addr_len= sst_prepare_mysqldump (addr_in, &addr_out); if (addr_len < 0) unireg_abort(1); @@ -871,6 +873,13 @@ ssize_t wsrep_sst_prepare (void** msg) /*! A heuristic workaround until we learn how to stop and start engines */ if (SE_initialized) { + if (!strcmp(method, WSREP_SST_XTRABACKUP) || + !strcmp(method, WSREP_SST_XTRABACKUPV2)) + { + WSREP_WARN("The %s SST method is deprecated, so it is automatically " + "replaced by %s", method, WSREP_SST_MARIABACKUP); + method = WSREP_SST_MARIABACKUP; + } // we already did SST at initializaiton, now engines are running // sql_print_information() is here because the message is too long // for WSREP_INFO. @@ -880,28 +889,28 @@ ssize_t wsrep_sst_prepare (void** msg) "Wsrep provider won't be able to fall back to it " "if other means of state transfer are unavailable. " "In that case you will need to restart the server.", - wsrep_sst_method); + method); *msg = 0; return 0; } - addr_len = sst_prepare_other (wsrep_sst_method, sst_auth_real, + addr_len = sst_prepare_other (method, sst_auth_real, addr_in, &addr_out); if (addr_len < 0) { WSREP_ERROR("Failed to prepare for '%s' SST. Unrecoverable.", - wsrep_sst_method); + method); unireg_abort(1); } } - size_t const method_len(strlen(wsrep_sst_method)); + size_t const method_len(strlen(method)); size_t const msg_len (method_len + addr_len + 2 /* + auth_len + 1*/); *msg = malloc (msg_len); if (NULL != *msg) { char* const method_ptr(reinterpret_cast<char*>(*msg)); - strcpy (method_ptr, wsrep_sst_method); + strcpy (method_ptr, method); char* const addr_ptr(method_ptr + method_len + 1); strcpy (addr_ptr, addr_out); |