diff options
author | Nirbhay Choubey <nirbhay@mariadb.com> | 2016-08-03 13:36:12 -0400 |
---|---|---|
committer | Nirbhay Choubey <nirbhay@mariadb.com> | 2016-08-03 13:36:12 -0400 |
commit | ba4ed3ee8478830fb94e99dcd5a5acfcc3e2c3ea (patch) | |
tree | dd9f6f51c94566ffa376b6653d8542f685e3641c /sql | |
parent | 08683a726773f8cdf16a4a3dfb3920e5f7842481 (diff) | |
download | mariadb-git-ba4ed3ee8478830fb94e99dcd5a5acfcc3e2c3ea.tar.gz |
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.
Diffstat (limited to 'sql')
-rw-r--r-- | sql/wsrep_mysqld.cc | 2 | ||||
-rw-r--r-- | sql/wsrep_sst.cc | 5 | ||||
-rw-r--r-- | sql/wsrep_sst.h | 1 | ||||
-rw-r--r-- | sql/wsrep_var.h | 2 |
4 files changed, 4 insertions, 6 deletions
diff --git a/sql/wsrep_mysqld.cc b/sql/wsrep_mysqld.cc index de050c6470e..fe52ca2c49d 100644 --- a/sql/wsrep_mysqld.cc +++ b/sql/wsrep_mysqld.cc @@ -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); diff --git a/sql/wsrep_sst.cc b/sql/wsrep_sst.cc index 2b682a1aded..ba6bb18bf37 100644 --- a/sql/wsrep_sst.cc +++ b/sql/wsrep_sst.cc @@ -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) diff --git a/sql/wsrep_sst.h b/sql/wsrep_sst.h index 50a16100128..460046bc4ad 100644 --- a/sql/wsrep_sst.h +++ b/sql/wsrep_sst.h @@ -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 */ diff --git a/sql/wsrep_var.h b/sql/wsrep_var.h index 202d6e393e0..0eccf64edb8 100644 --- a/sql/wsrep_var.h +++ b/sql/wsrep_var.h @@ -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 */ |