1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-29 05:21:33 +03:00

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.
This commit is contained in:
Vladislav Vaintroub
2017-04-18 17:20:55 +00:00
committed by Sergei Golubchik
parent ec68f764f6
commit f06ab0fc99
2 changed files with 21 additions and 15 deletions

View File

@ -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)
#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;

View File

@ -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)
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 */