Commit f06ab0fc authored by Vladislav Vaintroub's avatar Vladislav Vaintroub Committed by Sergei Golubchik

MDEV-9566 Server code changes in preparation for mariabackup

- Backup will  load encryption plugins outside of mysqld. Thus, do not
force loading MyISAM plugin in plugin_load.

- init_signals() will be used in backup,  make it global, not static.
parent ec68f764
...@@ -3100,7 +3100,7 @@ LONG WINAPI my_unhandler_exception_filter(EXCEPTION_POINTERS *ex_pointers) ...@@ -3100,7 +3100,7 @@ LONG WINAPI my_unhandler_exception_filter(EXCEPTION_POINTERS *ex_pointers)
} }
static void init_signals(void) void init_signals(void)
{ {
if(opt_console) if(opt_console)
SetConsoleCtrlHandler(console_event_handler,TRUE); SetConsoleCtrlHandler(console_event_handler,TRUE);
...@@ -3231,7 +3231,7 @@ static size_t my_setstacksize(pthread_attr_t *attr, size_t stacksize) ...@@ -3231,7 +3231,7 @@ static size_t my_setstacksize(pthread_attr_t *attr, size_t stacksize)
#ifndef EMBEDDED_LIBRARY #ifndef EMBEDDED_LIBRARY
static void init_signals(void) void init_signals(void)
{ {
sigset_t set; sigset_t set;
struct sigaction sa; struct sigaction sa;
......
...@@ -1606,9 +1606,14 @@ int plugin_init(int *argc, char **argv, int flags) ...@@ -1606,9 +1606,14 @@ int plugin_init(int *argc, char **argv, int flags)
} }
} }
/* First, we initialize only MyISAM - that should always succeed */ /*
First, we initialize only MyISAM - that should almost always succeed
(almost always, because plugins can be loaded outside of the server, too).
*/
plugin_ptr= plugin_find_internal(&MyISAM, MYSQL_STORAGE_ENGINE_PLUGIN); plugin_ptr= plugin_find_internal(&MyISAM, MYSQL_STORAGE_ENGINE_PLUGIN);
DBUG_ASSERT(plugin_ptr); DBUG_ASSERT(plugin_ptr || !mysql_mandatory_plugins[0]);
if (plugin_ptr)
{
DBUG_ASSERT(plugin_ptr->load_option == PLUGIN_FORCE); DBUG_ASSERT(plugin_ptr->load_option == PLUGIN_FORCE);
if (plugin_initialize(&tmp_root, plugin_ptr, argc, argv, false)) if (plugin_initialize(&tmp_root, plugin_ptr, argc, argv, false))
...@@ -1618,10 +1623,11 @@ int plugin_init(int *argc, char **argv, int flags) ...@@ -1618,10 +1623,11 @@ int plugin_init(int *argc, char **argv, int flags)
set the global default storage engine variable so that it will set the global default storage engine variable so that it will
not be null in any child thread. not be null in any child thread.
*/ */
global_system_variables.table_plugin= global_system_variables.table_plugin =
intern_plugin_lock(NULL, plugin_int_to_ref(plugin_ptr)); intern_plugin_lock(NULL, plugin_int_to_ref(plugin_ptr));
DBUG_ASSERT(plugin_ptr->ref_count == 1); DBUG_ASSERT(plugin_ptr->ref_count == 1);
}
mysql_mutex_unlock(&LOCK_plugin); mysql_mutex_unlock(&LOCK_plugin);
/* Register (not initialize!) all dynamic plugins */ /* Register (not initialize!) all dynamic plugins */
......
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