mirror of
https://github.com/MariaDB/server.git
synced 2025-08-08 11:22:35 +03:00
Merge branch 'bb-10.4-release' into bb-10.5-release
This commit is contained in:
@@ -345,7 +345,6 @@ static char compiled_default_collation_name[]= MYSQL_DEFAULT_COLLATION_NAME;
|
||||
Thread_cache thread_cache;
|
||||
static bool binlog_format_used= false;
|
||||
LEX_STRING opt_init_connect, opt_init_slave;
|
||||
mysql_cond_t COND_slave_background;
|
||||
static DYNAMIC_ARRAY all_options;
|
||||
static longlong start_memory_used;
|
||||
|
||||
@@ -686,7 +685,7 @@ mysql_mutex_t
|
||||
LOCK_crypt,
|
||||
LOCK_global_system_variables,
|
||||
LOCK_user_conn,
|
||||
LOCK_error_messages, LOCK_slave_background;
|
||||
LOCK_error_messages;
|
||||
mysql_mutex_t LOCK_stats, LOCK_global_user_client_stats,
|
||||
LOCK_global_table_stats, LOCK_global_index_stats;
|
||||
|
||||
@@ -905,8 +904,7 @@ PSI_mutex_key key_LOCK_stats,
|
||||
PSI_mutex_key key_LOCK_gtid_waiting;
|
||||
|
||||
PSI_mutex_key key_LOCK_after_binlog_sync;
|
||||
PSI_mutex_key key_LOCK_prepare_ordered, key_LOCK_commit_ordered,
|
||||
key_LOCK_slave_background;
|
||||
PSI_mutex_key key_LOCK_prepare_ordered, key_LOCK_commit_ordered;
|
||||
PSI_mutex_key key_TABLE_SHARE_LOCK_share;
|
||||
PSI_mutex_key key_LOCK_ack_receiver;
|
||||
|
||||
@@ -979,7 +977,6 @@ static PSI_mutex_info all_server_mutexes[]=
|
||||
{ &key_LOCK_prepare_ordered, "LOCK_prepare_ordered", PSI_FLAG_GLOBAL},
|
||||
{ &key_LOCK_after_binlog_sync, "LOCK_after_binlog_sync", PSI_FLAG_GLOBAL},
|
||||
{ &key_LOCK_commit_ordered, "LOCK_commit_ordered", PSI_FLAG_GLOBAL},
|
||||
{ &key_LOCK_slave_background, "LOCK_slave_background", PSI_FLAG_GLOBAL},
|
||||
{ &key_PARTITION_LOCK_auto_inc, "HA_DATA_PARTITION::LOCK_auto_inc", 0},
|
||||
{ &key_LOCK_slave_state, "LOCK_slave_state", 0},
|
||||
{ &key_LOCK_start_thread, "LOCK_start_thread", PSI_FLAG_GLOBAL},
|
||||
@@ -1048,7 +1045,7 @@ PSI_cond_key key_TC_LOG_MMAP_COND_queue_busy;
|
||||
PSI_cond_key key_COND_rpl_thread_queue, key_COND_rpl_thread,
|
||||
key_COND_rpl_thread_stop, key_COND_rpl_thread_pool,
|
||||
key_COND_parallel_entry, key_COND_group_commit_orderer,
|
||||
key_COND_prepare_ordered, key_COND_slave_background;
|
||||
key_COND_prepare_ordered;
|
||||
PSI_cond_key key_COND_wait_gtid, key_COND_gtid_ignore_duplicates;
|
||||
PSI_cond_key key_COND_ack_receiver;
|
||||
|
||||
@@ -1094,7 +1091,6 @@ static PSI_cond_info all_server_conds[]=
|
||||
{ &key_COND_parallel_entry, "COND_parallel_entry", 0},
|
||||
{ &key_COND_group_commit_orderer, "COND_group_commit_orderer", 0},
|
||||
{ &key_COND_prepare_ordered, "COND_prepare_ordered", 0},
|
||||
{ &key_COND_slave_background, "COND_slave_background", 0},
|
||||
{ &key_COND_start_thread, "COND_start_thread", PSI_FLAG_GLOBAL},
|
||||
{ &key_COND_wait_gtid, "COND_wait_gtid", 0},
|
||||
{ &key_COND_gtid_ignore_duplicates, "COND_gtid_ignore_duplicates", 0},
|
||||
@@ -1522,31 +1518,9 @@ static void end_ssl();
|
||||
/* common callee of two shutdown phases */
|
||||
static void kill_thread(THD *thd)
|
||||
{
|
||||
if (WSREP(thd)) mysql_mutex_lock(&thd->LOCK_thd_data);
|
||||
mysql_mutex_lock(&thd->LOCK_thd_kill);
|
||||
if (thd->mysys_var)
|
||||
{
|
||||
thd->mysys_var->abort= 1;
|
||||
mysql_mutex_lock(&thd->mysys_var->mutex);
|
||||
if (thd->mysys_var->current_cond)
|
||||
{
|
||||
for (uint i= 0; i < 2; i++)
|
||||
{
|
||||
int ret= mysql_mutex_trylock(thd->mysys_var->current_mutex);
|
||||
mysql_cond_broadcast(thd->mysys_var->current_cond);
|
||||
if (!ret)
|
||||
{
|
||||
/* Thread has surely got the signal, unlock and abort */
|
||||
mysql_mutex_unlock(thd->mysys_var->current_mutex);
|
||||
break;
|
||||
}
|
||||
sleep(1);
|
||||
}
|
||||
}
|
||||
mysql_mutex_unlock(&thd->mysys_var->mutex);
|
||||
}
|
||||
thd->abort_current_cond_wait(true);
|
||||
mysql_mutex_unlock(&thd->LOCK_thd_kill);
|
||||
if (WSREP(thd)) mysql_mutex_unlock(&thd->LOCK_thd_data);
|
||||
}
|
||||
|
||||
|
||||
@@ -1901,6 +1875,7 @@ extern "C" void unireg_abort(int exit_code)
|
||||
wsrep_deinit(true);
|
||||
wsrep_deinit_server();
|
||||
}
|
||||
wsrep_sst_auth_free();
|
||||
#endif // WITH_WSREP
|
||||
|
||||
clean_up(!opt_abort && (exit_code || !opt_bootstrap)); /* purecov: inspected */
|
||||
@@ -2124,8 +2099,6 @@ static void clean_up_mutexes()
|
||||
mysql_cond_destroy(&COND_prepare_ordered);
|
||||
mysql_mutex_destroy(&LOCK_after_binlog_sync);
|
||||
mysql_mutex_destroy(&LOCK_commit_ordered);
|
||||
mysql_mutex_destroy(&LOCK_slave_background);
|
||||
mysql_cond_destroy(&COND_slave_background);
|
||||
#ifndef EMBEDDED_LIBRARY
|
||||
mysql_mutex_destroy(&LOCK_error_log);
|
||||
#endif
|
||||
@@ -4224,9 +4197,6 @@ static int init_thread_environment()
|
||||
MY_MUTEX_INIT_SLOW);
|
||||
mysql_mutex_init(key_LOCK_commit_ordered, &LOCK_commit_ordered,
|
||||
MY_MUTEX_INIT_SLOW);
|
||||
mysql_mutex_init(key_LOCK_slave_background, &LOCK_slave_background,
|
||||
MY_MUTEX_INIT_SLOW);
|
||||
mysql_cond_init(key_COND_slave_background, &COND_slave_background, NULL);
|
||||
|
||||
#ifdef HAVE_OPENSSL
|
||||
mysql_mutex_init(key_LOCK_des_key_file,
|
||||
@@ -5004,6 +4974,10 @@ static int init_server_components()
|
||||
that there are unprocessed options.
|
||||
*/
|
||||
my_getopt_skip_unknown= 0;
|
||||
#ifdef WITH_WSREP
|
||||
if (wsrep_recovery)
|
||||
my_getopt_skip_unknown= TRUE;
|
||||
#endif
|
||||
|
||||
if ((ho_error= handle_options(&remaining_argc, &remaining_argv, removed_opts,
|
||||
mysqld_get_one_option)))
|
||||
@@ -5013,20 +4987,27 @@ static int init_server_components()
|
||||
remaining_argv--;
|
||||
my_getopt_skip_unknown= TRUE;
|
||||
|
||||
if (remaining_argc > 1)
|
||||
#ifdef WITH_WSREP
|
||||
if (!wsrep_recovery)
|
||||
{
|
||||
fprintf(stderr, "%s: Too many arguments (first extra is '%s').\n",
|
||||
my_progname, remaining_argv[1]);
|
||||
unireg_abort(1);
|
||||
#endif
|
||||
if (remaining_argc > 1)
|
||||
{
|
||||
fprintf(stderr, "%s: Too many arguments (first extra is '%s').\n",
|
||||
my_progname, remaining_argv[1]);
|
||||
unireg_abort(1);
|
||||
}
|
||||
#ifdef WITH_WSREP
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
if (init_io_cache_encryption())
|
||||
unireg_abort(1);
|
||||
|
||||
if (opt_abort)
|
||||
unireg_abort(0);
|
||||
|
||||
if (init_io_cache_encryption())
|
||||
unireg_abort(1);
|
||||
|
||||
/* if the errmsg.sys is not loaded, terminate to maintain behaviour */
|
||||
if (!DEFAULT_ERRMSGS[0][0])
|
||||
unireg_abort(1);
|
||||
@@ -5579,9 +5560,12 @@ int mysqld_main(int argc, char **argv)
|
||||
wsrep_init_startup(false);
|
||||
}
|
||||
wsrep_new_cluster= false;
|
||||
WSREP_DEBUG("Startup creating %ld applier threads running %lu",
|
||||
wsrep_slave_threads - 1, wsrep_running_applier_threads);
|
||||
wsrep_create_appliers(wsrep_slave_threads - 1);
|
||||
if (wsrep_cluster_address_exists())
|
||||
{
|
||||
WSREP_DEBUG("Startup creating %ld applier threads running %lu",
|
||||
wsrep_slave_threads - 1, wsrep_running_applier_threads);
|
||||
wsrep_create_appliers(wsrep_slave_threads - 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif /* WITH_WSREP */
|
||||
|
Reference in New Issue
Block a user