Commit b11be052 authored by Nirbhay Choubey's avatar Nirbhay Choubey

MDEV#6079: xtrabackup SST failing with maria-10.0-galera

Added logic to skip changing of case for wsrep status
variable names.
parent eec6222a
...@@ -16,84 +16,118 @@ SET GLOBAL wsrep_replicate_myisam= OFF; ...@@ -16,84 +16,118 @@ SET GLOBAL wsrep_replicate_myisam= OFF;
# variables when using "_" # variables when using "_"
# #
CALL mtr.add_suppression("WSREP: Could not open saved state file for reading.*"); CALL mtr.add_suppression("WSREP: Could not open saved state file for reading.*");
SHOW VARIABLES LIKE 'wsrep%'; SHOW GLOBAL STATUS LIKE 'wsrep%';
Variable_name Value Variable_name Value
wsrep_osu_method # wsrep_local_state_uuid #
wsrep_auto_increment_control # wsrep_protocol_version #
wsrep_last_committed #
wsrep_replicated #
wsrep_replicated_bytes #
wsrep_repl_keys #
wsrep_repl_keys_bytes #
wsrep_repl_data_bytes #
wsrep_repl_other_bytes #
wsrep_received #
wsrep_received_bytes #
wsrep_local_commits #
wsrep_local_cert_failures #
wsrep_local_replays #
wsrep_local_send_queue #
wsrep_local_send_queue_avg #
wsrep_local_recv_queue #
wsrep_local_recv_queue_avg #
wsrep_local_cached_downto #
wsrep_flow_control_paused_ns #
wsrep_flow_control_paused #
wsrep_flow_control_sent #
wsrep_flow_control_recv #
wsrep_cert_deps_distance #
wsrep_apply_oooe #
wsrep_apply_oool #
wsrep_apply_window #
wsrep_commit_oooe #
wsrep_commit_oool #
wsrep_commit_window #
wsrep_local_state #
wsrep_local_state_comment #
wsrep_cert_index_size #
wsrep_causal_reads # wsrep_causal_reads #
wsrep_certify_nonpk # wsrep_incoming_addresses #
wsrep_cluster_address # wsrep_cluster_conf_id #
wsrep_cluster_name # wsrep_cluster_size #
wsrep_convert_lock_to_trx # wsrep_cluster_state_uuid #
wsrep_data_home_dir # wsrep_cluster_status #
wsrep_dbug_option # wsrep_connected #
wsrep_debug # wsrep_local_bf_aborts #
wsrep_desync # wsrep_local_index #
wsrep_drupal_282555_workaround # wsrep_provider_name #
wsrep_forced_binlog_format # wsrep_provider_vendor #
wsrep_load_data_splitting # wsrep_provider_version #
wsrep_log_conflicts # wsrep_ready #
wsrep_max_ws_rows #
wsrep_max_ws_size #
wsrep_mysql_replication_bundle #
wsrep_node_address #
wsrep_node_incoming_address #
wsrep_node_name #
wsrep_notify_cmd #
wsrep_on #
wsrep_provider #
wsrep_provider_options #
wsrep_recover #
wsrep_replicate_myisam #
wsrep_restart_slave #
wsrep_retry_autocommit #
wsrep_slave_threads #
wsrep_sst_auth #
wsrep_sst_donor #
wsrep_sst_donor_rejects_queries #
wsrep_sst_method #
wsrep_sst_receive_address #
wsrep_start_position #
SHOW VARIABLES LIKE 'wsrep_%'; SHOW GLOBAL STATUS LIKE 'wsrep_%';
Variable_name Value Variable_name Value
wsrep_osu_method # wsrep_local_state_uuid #
wsrep_auto_increment_control # wsrep_protocol_version #
wsrep_last_committed #
wsrep_replicated #
wsrep_replicated_bytes #
wsrep_repl_keys #
wsrep_repl_keys_bytes #
wsrep_repl_data_bytes #
wsrep_repl_other_bytes #
wsrep_received #
wsrep_received_bytes #
wsrep_local_commits #
wsrep_local_cert_failures #
wsrep_local_replays #
wsrep_local_send_queue #
wsrep_local_send_queue_avg #
wsrep_local_recv_queue #
wsrep_local_recv_queue_avg #
wsrep_local_cached_downto #
wsrep_flow_control_paused_ns #
wsrep_flow_control_paused #
wsrep_flow_control_sent #
wsrep_flow_control_recv #
wsrep_cert_deps_distance #
wsrep_apply_oooe #
wsrep_apply_oool #
wsrep_apply_window #
wsrep_commit_oooe #
wsrep_commit_oool #
wsrep_commit_window #
wsrep_local_state #
wsrep_local_state_comment #
wsrep_cert_index_size #
wsrep_causal_reads # wsrep_causal_reads #
wsrep_certify_nonpk # wsrep_incoming_addresses #
wsrep_cluster_address # wsrep_cluster_conf_id #
wsrep_cluster_name # wsrep_cluster_size #
wsrep_convert_lock_to_trx # wsrep_cluster_state_uuid #
wsrep_data_home_dir # wsrep_cluster_status #
wsrep_dbug_option # wsrep_connected #
wsrep_debug # wsrep_local_bf_aborts #
wsrep_desync # wsrep_local_index #
wsrep_drupal_282555_workaround # wsrep_provider_name #
wsrep_forced_binlog_format # wsrep_provider_vendor #
wsrep_load_data_splitting # wsrep_provider_version #
wsrep_log_conflicts # wsrep_ready #
wsrep_max_ws_rows # SHOW GLOBAL STATUS LIKE 'wsrep_local_state_comment';
wsrep_max_ws_size # Variable_name Value
wsrep_mysql_replication_bundle # wsrep_local_state_comment Synced
wsrep_node_address #
wsrep_node_incoming_address #
wsrep_node_name #
wsrep_notify_cmd #
wsrep_on #
wsrep_provider #
wsrep_provider_options #
wsrep_recover #
wsrep_replicate_myisam #
wsrep_restart_slave #
wsrep_retry_autocommit #
wsrep_slave_threads #
wsrep_sst_auth #
wsrep_sst_donor #
wsrep_sst_donor_rejects_queries #
wsrep_sst_method #
wsrep_sst_receive_address #
wsrep_start_position #
# Should show nothing. # Should show nothing.
SHOW VARIABLES LIKE 'x'; SHOW STATUS LIKE 'x';
Variable_name Value
#
# MDEV#6079: xtrabackup SST failing with maria-10.0-galera
#
SHOW STATUS LIKE 'wsrep_local_state_uuid';
Variable_name Value
wsrep_local_state_uuid #
SHOW STATUS LIKE 'wsrep_last_committed';
Variable_name Value Variable_name Value
wsrep_last_committed #
# End of test. # End of test.
...@@ -24,13 +24,28 @@ SET GLOBAL wsrep_replicate_myisam= OFF; ...@@ -24,13 +24,28 @@ SET GLOBAL wsrep_replicate_myisam= OFF;
CALL mtr.add_suppression("WSREP: Could not open saved state file for reading.*"); CALL mtr.add_suppression("WSREP: Could not open saved state file for reading.*");
--replace_column 2 # --replace_column 2 #
SHOW VARIABLES LIKE 'wsrep%'; SHOW GLOBAL STATUS LIKE 'wsrep%';
--echo --echo
--replace_column 2 # --replace_column 2 #
SHOW VARIABLES LIKE 'wsrep_%'; SHOW GLOBAL STATUS LIKE 'wsrep_%';
SHOW GLOBAL STATUS LIKE 'wsrep_local_state_comment';
--echo # Should show nothing. --echo # Should show nothing.
SHOW VARIABLES LIKE 'x'; SHOW STATUS LIKE 'x';
--echo #
--echo # MDEV#6079: xtrabackup SST failing with maria-10.0-galera
--echo #
# The following 2 variables are used in innobackupex during xtrabackup-based
# SST.
--echo
--replace_column 2 #
SHOW STATUS LIKE 'wsrep_local_state_uuid';
--echo
--replace_column 2 #
SHOW STATUS LIKE 'wsrep_last_committed';
--echo # End of test. --echo # End of test.
...@@ -2947,11 +2947,39 @@ static bool show_status_array(THD *thd, const char *wild, ...@@ -2947,11 +2947,39 @@ static bool show_status_array(THD *thd, const char *wild,
*prefix_end++= '_'; *prefix_end++= '_';
len=name_buffer + sizeof(name_buffer) - prefix_end; len=name_buffer + sizeof(name_buffer) - prefix_end;
#ifdef WITH_WSREP
bool is_wsrep_var= FALSE;
/*
This is a workaround for lp:1306875 (PBX) to skip switching of wsrep
status variable name's first letter to uppercase. This is an optimization
for status variables defined under wsrep plugin.
TODO: remove once lp:1306875 has been addressed.
*/
if (*prefix && !my_strcasecmp(system_charset_info, prefix, "wsrep"))
{
is_wsrep_var= TRUE;
}
#endif /* WITH_WSREP */
for (; variables->name; variables++) for (; variables->name; variables++)
{ {
bool wild_checked; bool wild_checked;
strnmov(prefix_end, variables->name, len); strnmov(prefix_end, variables->name, len);
name_buffer[sizeof(name_buffer)-1]=0; /* Safety */ name_buffer[sizeof(name_buffer)-1]=0; /* Safety */
#ifdef WITH_WSREP
/*
If the prefix is NULL, that means we are looking into the status variables
defined directly under mysqld.cc. Do not capitalize wsrep status variable
names until lp:1306875 has been fixed.
TODO: remove once lp:1306875 has been addressed.
*/
if (!(*prefix) && !strncasecmp(name_buffer, "wsrep", strlen("wsrep")))
{
is_wsrep_var= TRUE;
}
#endif /* WITH_WSREP */
if (ucase_names) if (ucase_names)
my_caseup_str(system_charset_info, name_buffer); my_caseup_str(system_charset_info, name_buffer);
else else
...@@ -2960,8 +2988,13 @@ static bool show_status_array(THD *thd, const char *wild, ...@@ -2960,8 +2988,13 @@ static bool show_status_array(THD *thd, const char *wild,
DBUG_ASSERT(name_buffer[0] >= 'a'); DBUG_ASSERT(name_buffer[0] >= 'a');
DBUG_ASSERT(name_buffer[0] <= 'z'); DBUG_ASSERT(name_buffer[0] <= 'z');
#ifdef WITH_WSREP
// TODO: remove once lp:1306875 has been addressed.
if (status_var && (is_wsrep_var == FALSE))
#else
/* traditionally status variables have a first letter uppercased */ /* traditionally status variables have a first letter uppercased */
if (status_var) if (status_var)
#endif /* WITH_WSREP */
name_buffer[0]-= 'a' - 'A'; name_buffer[0]-= 'a' - 'A';
} }
......
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