Commit 578b6ba0 authored by Julius Goryavsky's avatar Julius Goryavsky

MDEV-19457: sys_vars.wsrep_provider_basic failed in buildbot

If the initialization of the wsrep provider failed, in some
cases the internal variable wrep_inited indicating that the
initialization has already been completed is still set to
"1", which then leads to confusion in the initialization
status. To solve the problem, we should set this variable
to "1" only if the wsrep provider initialization really
completed successfully.

An earlier issue has already been fixed for branch 10.4,
and this patch contains a fix for earlier versions (where
Galera 3.x is used).
parent 7993f893
...@@ -599,7 +599,6 @@ int wsrep_init() ...@@ -599,7 +599,6 @@ int wsrep_init()
{ {
// enable normal operation in case no provider is specified // enable normal operation in case no provider is specified
wsrep_ready_set(TRUE); wsrep_ready_set(TRUE);
wsrep_inited= 1;
global_system_variables.wsrep_on = 0; global_system_variables.wsrep_on = 0;
wsrep_init_args args; wsrep_init_args args;
args.logger_cb = wsrep_log_cb; args.logger_cb = wsrep_log_cb;
...@@ -610,10 +609,15 @@ int wsrep_init() ...@@ -610,10 +609,15 @@ int wsrep_init()
{ {
DBUG_PRINT("wsrep",("wsrep::init() failed: %d", rcode)); DBUG_PRINT("wsrep",("wsrep::init() failed: %d", rcode));
WSREP_ERROR("wsrep::init() failed: %d, must shutdown", rcode); WSREP_ERROR("wsrep::init() failed: %d, must shutdown", rcode);
wsrep_ready_set(FALSE);
wsrep->free(wsrep); wsrep->free(wsrep);
free(wsrep); free(wsrep);
wsrep = NULL; wsrep = NULL;
} }
else
{
wsrep_inited= 1;
}
return rcode; return rcode;
} }
else else
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment