Commit ba4ed3ee authored by Nirbhay Choubey's avatar Nirbhay Choubey

MDEV-10492: Assertion failure on shutdown when wsrep_sst_auth set in config

The memory alloc-ed initially for wsrep_sst_auth to store the
value specified in config was lost as the global variable was
reset while in process of masking it and thus, could never be
reclaimed on shutdown.
parent 08683a72
#
# MDEV-10492: Assertion failure on shutdown when wsrep_sst_auth set in config
#
SELECT @@global.wsrep_sst_auth;
@@global.wsrep_sst_auth
********
SET @@global.wsrep_sst_auth='foo:bar';
SELECT @@global.wsrep_sst_auth;
@@global.wsrep_sst_auth
********
disconnect node_2;
disconnect node_1;
--source include/galera_cluster.inc
--source include/have_innodb.inc
--echo #
--echo # MDEV-10492: Assertion failure on shutdown when wsrep_sst_auth set in config
--echo #
SELECT @@global.wsrep_sst_auth;
SET @@global.wsrep_sst_auth='foo:bar';
SELECT @@global.wsrep_sst_auth;
--source include/galera_end.inc
......@@ -577,7 +577,7 @@ int wsrep_init()
return 1;
}
wsrep_sst_auth_init(wsrep_sst_auth);
wsrep_sst_auth_init();
wsrep_ready_set(FALSE);
assert(wsrep_provider);
......
......@@ -169,10 +169,9 @@ bool wsrep_sst_auth_update (sys_var *self, THD* thd, enum_var_type type)
return sst_auth_real_set (wsrep_sst_auth);
}
void wsrep_sst_auth_init (const char* value)
void wsrep_sst_auth_init ()
{
if (wsrep_sst_auth == value) wsrep_sst_auth = NULL;
if (value) sst_auth_real_set (value);
sst_auth_real_set(wsrep_sst_auth);
}
bool wsrep_sst_donor_check (sys_var *self, THD* thd, set_var* var)
......
......@@ -64,6 +64,7 @@ extern void wsrep_sst_grab();
extern bool wsrep_sst_wait();
/*! Signals wsrep that initialization is complete, writesets can be applied */
extern bool wsrep_sst_continue();
extern void wsrep_sst_auth_init();
extern void wsrep_sst_auth_free();
extern void wsrep_SE_init_grab(); /*! grab init critical section */
......
......@@ -81,7 +81,6 @@ extern bool wsrep_sst_receive_address_update UPDATE_ARGS;
extern bool wsrep_sst_auth_check CHECK_ARGS;
extern bool wsrep_sst_auth_update UPDATE_ARGS;
extern void wsrep_sst_auth_init INIT_ARGS;
extern bool wsrep_sst_donor_check CHECK_ARGS;
extern bool wsrep_sst_donor_update UPDATE_ARGS;
......@@ -98,7 +97,6 @@ extern bool wsrep_desync_update UPDATE_ARGS;
#define wsrep_provider_init(X)
#define wsrep_init_vars() (0)
#define wsrep_start_position_init(X)
#define wsrep_sst_auth_init(X)
#endif /* WITH_WSREP */
#endif /* WSREP_VAR_H */
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