MDEV-19404: Assertion failure on !is_thread_specific || (mysqld_server_initialized && thd)
In wsrep_plugins_post_init we iterate all theads and if they are galera appliers (wsrep_applier) we init session variables. However, current_thd was not set and recent changes on session variables require holding LOCK_gloal_system_variables mutex. This is 10.4 version.
This commit is contained in:
parent
41779561ec
commit
3d8cacee6e
@ -4352,20 +4352,28 @@ void wsrep_plugins_pre_init()
|
||||
|
||||
my_bool post_init_callback(THD *thd, void *)
|
||||
{
|
||||
DBUG_ASSERT(!current_thd);
|
||||
if (thd->wsrep_applier)
|
||||
{
|
||||
// Save options_bits as it will get overwritten in plugin_thdvar_init()
|
||||
// Save options_bits as it will get overwritten in
|
||||
// plugin_thdvar_init() (verified)
|
||||
ulonglong option_bits_saved= thd->variables.option_bits;
|
||||
|
||||
set_current_thd(thd);
|
||||
plugin_thdvar_init(thd);
|
||||
|
||||
// Restore option_bits
|
||||
thd->variables.option_bits= option_bits_saved;
|
||||
}
|
||||
set_current_thd(0);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
void wsrep_plugins_post_init()
|
||||
{
|
||||
mysql_mutex_lock(&LOCK_global_system_variables);
|
||||
server_threads.iterate(post_init_callback);
|
||||
mysql_mutex_unlock(&LOCK_global_system_variables);
|
||||
}
|
||||
#endif /* WITH_WSREP */
|
||||
|
Loading…
x
Reference in New Issue
Block a user