Commit 80b4fa54 authored by Julius Goryavsky's avatar Julius Goryavsky

MDEV-30318: galera error messages in mariadb log without galera enabled

Post-fix to MDEV-30318 and MDEV-22570-related changes:
unified handling of wsrep_provider by code so that "none"
is interpreted as case-insensitive everywhere and that
work with an empty string is supported everywhere.
parent cc182aca
--disable_query_log --disable_query_log
--let $galera_variables_ok = `SELECT COUNT(*) = 50 FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_NAME LIKE 'wsrep%'` --let $galera_variables_ok = `SELECT COUNT(*) = 51 FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_NAME LIKE 'wsrep%'`
--if (!$galera_variables_ok) { --if (!$galera_variables_ok) {
--skip Galera number of variables has changed! --skip Galera number of variables has changed!
......
# Correct Galera library found # Correct Galera library found
SELECT COUNT(*) FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_NAME LIKE 'wsrep_provider%'; SELECT COUNT(*) FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_NAME LIKE 'wsrep_provider%' AND VARIABLE_NAME NOT IN (
'wsrep_provider',
'wsrep_provider_options',
'wsrep_provider_base_dir',
'wsrep_provider_base_port',
'wsrep_provider_gcache_dir',
'wsrep_provider_dbug',
'wsrep_provider_gcache_debug',
'wsrep_provider_signal',
'wsrep_provider_gmcast_listen_addr');
COUNT(*) COUNT(*)
89 83
SELECT * FROM INFORMATION_SCHEMA.SYSTEM_VARIABLES SELECT * FROM INFORMATION_SCHEMA.SYSTEM_VARIABLES
WHERE VARIABLE_NAME LIKE 'wsrep_provider_%' AND VARIABLE_NAME NOT IN ( WHERE VARIABLE_NAME LIKE 'wsrep_provider_%' AND VARIABLE_NAME NOT IN (
'wsrep_provider', 'wsrep_provider',
...@@ -9,6 +18,9 @@ WHERE VARIABLE_NAME LIKE 'wsrep_provider_%' AND VARIABLE_NAME NOT IN ( ...@@ -9,6 +18,9 @@ WHERE VARIABLE_NAME LIKE 'wsrep_provider_%' AND VARIABLE_NAME NOT IN (
'wsrep_provider_base_dir', 'wsrep_provider_base_dir',
'wsrep_provider_base_port', 'wsrep_provider_base_port',
'wsrep_provider_gcache_dir', 'wsrep_provider_gcache_dir',
'wsrep_provider_dbug',
'wsrep_provider_gcache_debug',
'wsrep_provider_signal',
'wsrep_provider_gmcast_listen_addr') 'wsrep_provider_gmcast_listen_addr')
ORDER BY VARIABLE_NAME; ORDER BY VARIABLE_NAME;
VARIABLE_NAME WSREP_PROVIDER_BASE_HOST VARIABLE_NAME WSREP_PROVIDER_BASE_HOST
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
--let $galera_version=26.4.11 --let $galera_version=26.4.11
source include/check_galera_version.inc; source include/check_galera_version.inc;
source include/galera_variables_ok.inc; source include/galera_variables_ok_debug.inc;
--replace_column 2 # --replace_column 2 #
SHOW GLOBAL STATUS LIKE 'wsrep%'; SHOW GLOBAL STATUS LIKE 'wsrep%';
......
...@@ -4,7 +4,16 @@ ...@@ -4,7 +4,16 @@
--let $galera_version=26.4.14 --let $galera_version=26.4.14
source include/check_galera_version.inc; source include/check_galera_version.inc;
SELECT COUNT(*) FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_NAME LIKE 'wsrep_provider%'; SELECT COUNT(*) FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_NAME LIKE 'wsrep_provider%' AND VARIABLE_NAME NOT IN (
'wsrep_provider',
'wsrep_provider_options',
'wsrep_provider_base_dir',
'wsrep_provider_base_port',
'wsrep_provider_gcache_dir',
'wsrep_provider_dbug',
'wsrep_provider_gcache_debug',
'wsrep_provider_signal',
'wsrep_provider_gmcast_listen_addr');
--vertical_results --vertical_results
SELECT * FROM INFORMATION_SCHEMA.SYSTEM_VARIABLES SELECT * FROM INFORMATION_SCHEMA.SYSTEM_VARIABLES
...@@ -14,5 +23,8 @@ WHERE VARIABLE_NAME LIKE 'wsrep_provider_%' AND VARIABLE_NAME NOT IN ( ...@@ -14,5 +23,8 @@ WHERE VARIABLE_NAME LIKE 'wsrep_provider_%' AND VARIABLE_NAME NOT IN (
'wsrep_provider_base_dir', 'wsrep_provider_base_dir',
'wsrep_provider_base_port', 'wsrep_provider_base_port',
'wsrep_provider_gcache_dir', 'wsrep_provider_gcache_dir',
'wsrep_provider_dbug',
'wsrep_provider_gcache_debug',
'wsrep_provider_signal',
'wsrep_provider_gmcast_listen_addr') 'wsrep_provider_gmcast_listen_addr')
ORDER BY VARIABLE_NAME; ORDER BY VARIABLE_NAME;
...@@ -85,7 +85,7 @@ int wsrep_check_opts() ...@@ -85,7 +85,7 @@ int wsrep_check_opts()
} }
} }
if (strcasecmp(wsrep_provider, "NONE")) if (strcasecmp(wsrep_provider, WSREP_NONE))
{ {
if (global_system_variables.binlog_format != BINLOG_FORMAT_ROW) if (global_system_variables.binlog_format != BINLOG_FORMAT_ROW)
{ {
......
...@@ -867,8 +867,8 @@ int wsrep_init() ...@@ -867,8 +867,8 @@ int wsrep_init()
wsrep_init_position(); wsrep_init_position();
wsrep_sst_auth_init(); wsrep_sst_auth_init();
if (strlen(wsrep_provider)== 0 || if (!*wsrep_provider ||
!strcmp(wsrep_provider, WSREP_NONE)) !strcasecmp(wsrep_provider, WSREP_NONE))
{ {
// enable normal operation in case no provider is specified // enable normal operation in case no provider is specified
global_system_variables.wsrep_on= 0; global_system_variables.wsrep_on= 0;
...@@ -922,7 +922,7 @@ int wsrep_init() ...@@ -922,7 +922,7 @@ int wsrep_init()
/* Now WSREP is fully initialized */ /* Now WSREP is fully initialized */
global_system_variables.wsrep_on= 1; global_system_variables.wsrep_on= 1;
WSREP_ON_= wsrep_provider && strcmp(wsrep_provider, WSREP_NONE); WSREP_ON_= wsrep_provider && *wsrep_provider && strcasecmp(wsrep_provider, WSREP_NONE);
wsrep_service_started= 1; wsrep_service_started= 1;
wsrep_init_provider_status_variables(); wsrep_init_provider_status_variables();
...@@ -991,7 +991,8 @@ void wsrep_init_startup (bool sst_first) ...@@ -991,7 +991,8 @@ void wsrep_init_startup (bool sst_first)
wsrep_plugins_pre_init(); wsrep_plugins_pre_init();
/* Skip replication start if dummy wsrep provider is loaded */ /* Skip replication start if dummy wsrep provider is loaded */
if (!strcmp(wsrep_provider, WSREP_NONE)) return; if (!wsrep_provider || !*wsrep_provider ||
!strcasecmp(wsrep_provider, WSREP_NONE)) return;
/* Skip replication start if no cluster address */ /* Skip replication start if no cluster address */
if (!wsrep_cluster_address_exists()) return; if (!wsrep_cluster_address_exists()) return;
......
...@@ -310,7 +310,8 @@ bool wsrep_sst_donor_update (sys_var *self, THD* thd, enum_var_type type) ...@@ -310,7 +310,8 @@ bool wsrep_sst_donor_update (sys_var *self, THD* thd, enum_var_type type)
bool wsrep_before_SE() bool wsrep_before_SE()
{ {
return (wsrep_provider != NULL return (wsrep_provider
&& *wsrep_provider
&& strcmp (wsrep_provider, WSREP_NONE) && strcmp (wsrep_provider, WSREP_NONE)
&& strcmp (wsrep_sst_method, WSREP_SST_SKIP) && strcmp (wsrep_sst_method, WSREP_SST_SKIP)
&& strcmp (wsrep_sst_method, WSREP_SST_MYSQLDUMP)); && strcmp (wsrep_sst_method, WSREP_SST_MYSQLDUMP));
......
...@@ -103,8 +103,8 @@ void wsrep_set_wsrep_on(THD* thd) ...@@ -103,8 +103,8 @@ void wsrep_set_wsrep_on(THD* thd)
{ {
if (thd) if (thd)
thd->wsrep_was_on= WSREP_ON_; thd->wsrep_was_on= WSREP_ON_;
WSREP_PROVIDER_EXISTS_= wsrep_provider && WSREP_PROVIDER_EXISTS_= wsrep_provider && *wsrep_provider &&
strncasecmp(wsrep_provider, WSREP_NONE, FN_REFLEN); strcasecmp(wsrep_provider, WSREP_NONE);
WSREP_ON_= global_system_variables.wsrep_on && WSREP_PROVIDER_EXISTS_; WSREP_ON_= global_system_variables.wsrep_on && WSREP_PROVIDER_EXISTS_;
} }
...@@ -114,10 +114,14 @@ bool wsrep_on_update (sys_var *self, THD* thd, enum_var_type var_type) ...@@ -114,10 +114,14 @@ bool wsrep_on_update (sys_var *self, THD* thd, enum_var_type var_type)
{ {
my_bool saved_wsrep_on= global_system_variables.wsrep_on; my_bool saved_wsrep_on= global_system_variables.wsrep_on;
thd->variables.wsrep_on= global_system_variables.wsrep_on; thd->variables.wsrep_on= saved_wsrep_on;
// If wsrep has not been inited we need to do it now // If wsrep has not been inited we need to do it now
if (global_system_variables.wsrep_on && wsrep_provider && !wsrep_inited) if (!wsrep_inited &&
saved_wsrep_on &&
wsrep_provider &&
*wsrep_provider &&
strcasecmp(wsrep_provider, WSREP_NONE))
{ {
// wsrep_init() rewrites provide if it fails // wsrep_init() rewrites provide if it fails
char* tmp= strdup(wsrep_provider); char* tmp= strdup(wsrep_provider);
......
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