diff options
author | Teemu Ollakka <teemu.ollakka@galeracluster.com> | 2023-01-16 17:45:06 +0200 |
---|---|---|
committer | Teemu Ollakka <teemu.ollakka@galeracluster.com> | 2023-01-19 14:55:50 +0200 |
commit | beb1e230ddbf6b8a6bc22666df3147243a1a43e6 (patch) | |
tree | 0dafe93e6df47587528250fb80472545bc203a02 /sql/wsrep_sst.cc | |
parent | 9924466b3b9b3cdc590106e0036e6fb67d9aa4b0 (diff) | |
download | mariadb-git-beb1e230ddbf6b8a6bc22666df3147243a1a43e6.tar.gz |
MDEV-30419 Fix unhandled exception thrown from wsrep-lib
Updated wsrep-lib to version in which server_state
wait_until_state() and sst_received() were changed to report
errors via return codes instead of throwing exceptions. Added
error handling accordingly.
Tested manually that failure in sst_received() which was
caused by server misconfiguration (unknown configuration variable
in server configuration) does not cause crash due to uncaught
exception.
Diffstat (limited to 'sql/wsrep_sst.cc')
-rw-r--r-- | sql/wsrep_sst.cc | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/sql/wsrep_sst.cc b/sql/wsrep_sst.cc index ddd5b5945b4..1fb1d6890e2 100644 --- a/sql/wsrep_sst.cc +++ b/sql/wsrep_sst.cc @@ -336,9 +336,14 @@ static bool wsrep_sst_complete (THD* thd, if ((state == Wsrep_server_state::s_joiner || state == Wsrep_server_state::s_initialized)) { - Wsrep_server_state::instance().sst_received(client_service, - rcode); - WSREP_INFO("SST succeeded for position %s", start_pos_buf); + if (Wsrep_server_state::instance().sst_received(client_service, rcode)) + { + failed= true; + } + else + { + WSREP_INFO("SST succeeded for position %s", start_pos_buf); + } } else { |