Commit 1a0526e2 authored by Sergei Golubchik's avatar Sergei Golubchik

Merge branch 'bb-10.5-release' into 10.5

parents 85bec9d6 3a8ca909
...@@ -49,4 +49,6 @@ mysql-wsrep#198 : MDEV-24446: galera.mysql-wsrep#198 MTR failed: query 'reap' fa ...@@ -49,4 +49,6 @@ mysql-wsrep#198 : MDEV-24446: galera.mysql-wsrep#198 MTR failed: query 'reap' fa
partition : MDEV-19958 Galera test failure on galera.partition partition : MDEV-19958 Galera test failure on galera.partition
query_cache: MDEV-15805 Test failure on galera.query_cache query_cache: MDEV-15805 Test failure on galera.query_cache
sql_log_bin : MDEV-21491 galera.sql_log_bin sql_log_bin : MDEV-21491 galera.sql_log_bin
versioning_trx_id : MDEV-18590 galera.versioning_trx_id versioning_trx_id: MDEV-18590: galera.versioning_trx_id: Test failure: mysqltest: Result content mismatch
galera_wsrep_provider_unset_set: wsrep_provider is read-only for security reasons
pxc-421: wsrep_provider is read-only for security reasons
--echo Loading wsrep provider ... --echo Loading wsrep provider ...
--disable_query_log --disable_query_log
--eval SET GLOBAL wsrep_provider = '$wsrep_provider_orig';
# #
# count occurences of successful node starts in error log # count occurences of successful node starts in error log
# #
......
--echo Unloading wsrep provider ... --echo Unloading wsrep provider ...
--let $wsrep_cluster_address_orig = `SELECT @@wsrep_cluster_address` --let $wsrep_cluster_address_orig = `SELECT @@wsrep_cluster_address`
--let $wsrep_provider_orig = `SELECT @@wsrep_provider`
--let $wsrep_provider_options_orig = `SELECT @@wsrep_provider_options` --let $wsrep_provider_options_orig = `SELECT @@wsrep_provider_options`
--let $wsrep_error_log_orig = `SELECT @@log_error` --let $wsrep_error_log_orig = `SELECT @@log_error`
if(!$wsrep_log_error_orig) if(!$wsrep_log_error_orig)
...@@ -12,4 +11,4 @@ if(!$wsrep_log_error_orig) ...@@ -12,4 +11,4 @@ if(!$wsrep_log_error_orig)
} }
--let LOG_FILE= $wsrep_log_error_orig --let LOG_FILE= $wsrep_log_error_orig
SET GLOBAL wsrep_provider = 'none'; SET GLOBAL wsrep_cluster_address = '';
...@@ -23,7 +23,7 @@ INSERT INTO t1 VALUES ('node2_committed_before'); ...@@ -23,7 +23,7 @@ INSERT INTO t1 VALUES ('node2_committed_before');
INSERT INTO t1 VALUES ('node2_committed_before'); INSERT INTO t1 VALUES ('node2_committed_before');
COMMIT; COMMIT;
Unloading wsrep provider ... Unloading wsrep provider ...
SET GLOBAL wsrep_provider = 'none'; SET GLOBAL wsrep_cluster_address = '';
connection node_1; connection node_1;
SET AUTOCOMMIT=OFF; SET AUTOCOMMIT=OFF;
START TRANSACTION; START TRANSACTION;
......
...@@ -23,7 +23,7 @@ INSERT INTO t1 VALUES ('node2_committed_before'); ...@@ -23,7 +23,7 @@ INSERT INTO t1 VALUES ('node2_committed_before');
INSERT INTO t1 VALUES ('node2_committed_before'); INSERT INTO t1 VALUES ('node2_committed_before');
COMMIT; COMMIT;
Unloading wsrep provider ... Unloading wsrep provider ...
SET GLOBAL wsrep_provider = 'none'; SET GLOBAL wsrep_cluster_address = '';
connection node_1; connection node_1;
SET AUTOCOMMIT=OFF; SET AUTOCOMMIT=OFF;
START TRANSACTION; START TRANSACTION;
......
...@@ -30,7 +30,7 @@ INSERT INTO t1 VALUES ('node2_committed_before'); ...@@ -30,7 +30,7 @@ INSERT INTO t1 VALUES ('node2_committed_before');
INSERT INTO t1 VALUES ('node2_committed_before'); INSERT INTO t1 VALUES ('node2_committed_before');
COMMIT; COMMIT;
Unloading wsrep provider ... Unloading wsrep provider ...
SET GLOBAL wsrep_provider = 'none'; SET GLOBAL wsrep_cluster_address = '';
connection node_1; connection node_1;
SET AUTOCOMMIT=OFF; SET AUTOCOMMIT=OFF;
START TRANSACTION; START TRANSACTION;
......
...@@ -32,7 +32,7 @@ INSERT INTO t1 VALUES ('node2_committed_before'); ...@@ -32,7 +32,7 @@ INSERT INTO t1 VALUES ('node2_committed_before');
INSERT INTO t1 VALUES ('node2_committed_before'); INSERT INTO t1 VALUES ('node2_committed_before');
COMMIT; COMMIT;
Unloading wsrep provider ... Unloading wsrep provider ...
SET GLOBAL wsrep_provider = 'none'; SET GLOBAL wsrep_cluster_address = '';
connection node_1; connection node_1;
SET AUTOCOMMIT=OFF; SET AUTOCOMMIT=OFF;
START TRANSACTION; START TRANSACTION;
......
SET @save_pct= @@GLOBAL.innodb_max_dirty_pages_pct;
SET @save_pct_lwm= @@GLOBAL.innodb_max_dirty_pages_pct_lwm;
SET GLOBAL innodb_max_dirty_pages_pct_lwm=0.0;
SET GLOBAL innodb_max_dirty_pages_pct=0.0;
SET GLOBAL innodb_max_dirty_pages_pct=90.0;
CREATE TABLE t ENGINE=InnoDB SELECT * FROM seq_1_to_10000;
SELECT variable_value>0 FROM information_schema.global_status
WHERE variable_name = 'INNODB_BUFFER_POOL_PAGES_DIRTY';
variable_value>0
1
SET GLOBAL innodb_max_dirty_pages_pct=0.0;
DROP TABLE t;
SET GLOBAL innodb_max_dirty_pages_pct = @save_pct;
SET GLOBAL innodb_max_dirty_pages_pct_lwm = @save_pct_lwm;
--source include/have_innodb.inc
--source include/have_sequence.inc
SET @save_pct= @@GLOBAL.innodb_max_dirty_pages_pct;
SET @save_pct_lwm= @@GLOBAL.innodb_max_dirty_pages_pct_lwm;
SET GLOBAL innodb_max_dirty_pages_pct_lwm=0.0;
SET GLOBAL innodb_max_dirty_pages_pct=0.0;
let $wait_condition =
SELECT variable_value = 0
FROM information_schema.global_status
WHERE variable_name = 'INNODB_BUFFER_POOL_PAGES_DIRTY';
--source include/wait_condition.inc
SET GLOBAL innodb_max_dirty_pages_pct=90.0;
CREATE TABLE t ENGINE=InnoDB SELECT * FROM seq_1_to_10000;
SELECT variable_value>0 FROM information_schema.global_status
WHERE variable_name = 'INNODB_BUFFER_POOL_PAGES_DIRTY';
SET GLOBAL innodb_max_dirty_pages_pct=0.0;
# Without the MDEV-24917 fix, we would time out here.
--source include/wait_condition.inc
DROP TABLE t;
SET GLOBAL innodb_max_dirty_pages_pct = @save_pct;
SET GLOBAL innodb_max_dirty_pages_pct_lwm = @save_pct_lwm;
...@@ -403,7 +403,7 @@ NUMERIC_MIN_VALUE NULL ...@@ -403,7 +403,7 @@ NUMERIC_MIN_VALUE NULL
NUMERIC_MAX_VALUE NULL NUMERIC_MAX_VALUE NULL
NUMERIC_BLOCK_SIZE NULL NUMERIC_BLOCK_SIZE NULL
ENUM_VALUE_LIST NULL ENUM_VALUE_LIST NULL
READ_ONLY NO READ_ONLY YES
COMMAND_LINE_ARGUMENT REQUIRED COMMAND_LINE_ARGUMENT REQUIRED
GLOBAL_VALUE_PATH NULL GLOBAL_VALUE_PATH NULL
VARIABLE_NAME WSREP_ON VARIABLE_NAME WSREP_ON
...@@ -463,7 +463,7 @@ NUMERIC_MIN_VALUE NULL ...@@ -463,7 +463,7 @@ NUMERIC_MIN_VALUE NULL
NUMERIC_MAX_VALUE NULL NUMERIC_MAX_VALUE NULL
NUMERIC_BLOCK_SIZE NULL NUMERIC_BLOCK_SIZE NULL
ENUM_VALUE_LIST NULL ENUM_VALUE_LIST NULL
READ_ONLY NO READ_ONLY YES
COMMAND_LINE_ARGUMENT REQUIRED COMMAND_LINE_ARGUMENT REQUIRED
GLOBAL_VALUE_PATH NULL GLOBAL_VALUE_PATH NULL
VARIABLE_NAME WSREP_PROVIDER_OPTIONS VARIABLE_NAME WSREP_PROVIDER_OPTIONS
......
#
# wsrep_notify_cmd
#
call mtr.add_suppression("WSREP: Failed to get provider options");
# save the initial value
SET @wsrep_notify_cmd_global_saved = @@global.wsrep_notify_cmd;
# default
SELECT @@global.wsrep_notify_cmd;
@@global.wsrep_notify_cmd
# scope
SELECT @@session.wsrep_notify_cmd;
ERROR HY000: Variable 'wsrep_notify_cmd' is a GLOBAL variable
SET @@global.wsrep_notify_cmd='notify_cmd';
SELECT @@global.wsrep_notify_cmd;
@@global.wsrep_notify_cmd
notify_cmd
# valid values
SET @@global.wsrep_notify_cmd='command';
SELECT @@global.wsrep_notify_cmd;
@@global.wsrep_notify_cmd
command
SET @@global.wsrep_notify_cmd='hyphenated-command';
SELECT @@global.wsrep_notify_cmd;
@@global.wsrep_notify_cmd
hyphenated-command
SET @@global.wsrep_notify_cmd=default;
SELECT @@global.wsrep_notify_cmd;
@@global.wsrep_notify_cmd
SET @@global.wsrep_notify_cmd=NULL;
SELECT @@global.wsrep_notify_cmd;
@@global.wsrep_notify_cmd
NULL
# invalid values
SET @@global.wsrep_notify_cmd=1;
ERROR 42000: Incorrect argument type to variable 'wsrep_notify_cmd'
SELECT @@global.wsrep_notify_cmd;
@@global.wsrep_notify_cmd
NULL
# restore the initial value
SET @@global.wsrep_notify_cmd = @wsrep_notify_cmd_global_saved;
# End of test
#
# wsrep_provider
#
# save the initial value
SET @wsrep_provider_global_saved = @@global.wsrep_provider;
# default
SELECT @@global.wsrep_provider;
@@global.wsrep_provider
none
# scope
SELECT @@session.wsrep_provider;
ERROR HY000: Variable 'wsrep_provider' is a GLOBAL variable
SELECT @@global.wsrep_provider;
@@global.wsrep_provider
none
# valid values
SET @@global.wsrep_provider=default;
SELECT @@global.wsrep_provider;
@@global.wsrep_provider
none
# invalid values
SET @@global.wsrep_provider='/invalid/libgalera_smm.so';
ERROR 42000: Variable 'wsrep_provider' can't be set to the value of '/invalid/libgalera_smm.so'
SET @@global.wsrep_provider=NULL;
ERROR 42000: Variable 'wsrep_provider' can't be set to the value of 'NULL'
SELECT @@global.wsrep_provider;
@@global.wsrep_provider
none
SET @@global.wsrep_provider=1;
ERROR 42000: Incorrect argument type to variable 'wsrep_provider'
SELECT @@global.wsrep_provider;
@@global.wsrep_provider
none
# restore the initial value
SET @@global.wsrep_provider = @wsrep_provider_global_saved;
# End of test
#
# wsrep_provider_options
#
call mtr.add_suppression("WSREP: Failed to get provider options");
# default
SELECT @@global.wsrep_provider_options;
@@global.wsrep_provider_options
# scope
SELECT @@session.wsrep_provider_options;
ERROR HY000: Variable 'wsrep_provider_options' is a GLOBAL variable
SET @@global.wsrep_provider_options='option1';
SELECT @@global.wsrep_provider_options;
@@global.wsrep_provider_options
# valid values
SET @@global.wsrep_provider_options='name1=value1;name2=value2';
ERROR HY000: WSREP (galera) not started
SELECT @@global.wsrep_provider_options;
@@global.wsrep_provider_options
SET @@global.wsrep_provider_options='hyphenated-name:value';
ERROR HY000: WSREP (galera) not started
SELECT @@global.wsrep_provider_options;
@@global.wsrep_provider_options
SET @@global.wsrep_provider_options=default;
ERROR HY000: WSREP (galera) not started
SELECT @@global.wsrep_provider_options;
@@global.wsrep_provider_options
# invalid values
SET @@global.wsrep_provider_options=1;
ERROR 42000: Incorrect argument type to variable 'wsrep_provider_options'
SELECT @@global.wsrep_provider_options;
@@global.wsrep_provider_options
SET @@global.wsrep_provider_options=NULL;
Got one of the listed errors
SELECT @@global.wsrep_provider_options;
@@global.wsrep_provider_options
# End of test
--source include/have_wsrep.inc
--echo #
--echo # wsrep_notify_cmd
--echo #
call mtr.add_suppression("WSREP: Failed to get provider options");
--echo # save the initial value
SET @wsrep_notify_cmd_global_saved = @@global.wsrep_notify_cmd;
--echo # default
SELECT @@global.wsrep_notify_cmd;
--echo
--echo # scope
--error ER_INCORRECT_GLOBAL_LOCAL_VAR
SELECT @@session.wsrep_notify_cmd;
SET @@global.wsrep_notify_cmd='notify_cmd';
SELECT @@global.wsrep_notify_cmd;
--echo
--echo # valid values
SET @@global.wsrep_notify_cmd='command';
SELECT @@global.wsrep_notify_cmd;
SET @@global.wsrep_notify_cmd='hyphenated-command';
SELECT @@global.wsrep_notify_cmd;
SET @@global.wsrep_notify_cmd=default;
SELECT @@global.wsrep_notify_cmd;
SET @@global.wsrep_notify_cmd=NULL;
SELECT @@global.wsrep_notify_cmd;
--echo
--echo # invalid values
--error ER_WRONG_TYPE_FOR_VAR
SET @@global.wsrep_notify_cmd=1;
SELECT @@global.wsrep_notify_cmd;
--echo
--echo # restore the initial value
SET @@global.wsrep_notify_cmd = @wsrep_notify_cmd_global_saved;
--echo # End of test
--source include/have_wsrep.inc
--echo #
--echo # wsrep_provider
--echo #
--echo # save the initial value
SET @wsrep_provider_global_saved = @@global.wsrep_provider;
--echo # default
SELECT @@global.wsrep_provider;
--echo
--echo # scope
--error ER_INCORRECT_GLOBAL_LOCAL_VAR
SELECT @@session.wsrep_provider;
SELECT @@global.wsrep_provider;
--echo
--echo # valid values
SET @@global.wsrep_provider=default;
SELECT @@global.wsrep_provider;
--echo
--echo # invalid values
--error ER_WRONG_VALUE_FOR_VAR
SET @@global.wsrep_provider='/invalid/libgalera_smm.so';
--error ER_WRONG_VALUE_FOR_VAR
SET @@global.wsrep_provider=NULL;
SELECT @@global.wsrep_provider;
--error ER_WRONG_TYPE_FOR_VAR
SET @@global.wsrep_provider=1;
SELECT @@global.wsrep_provider;
--echo
--echo # restore the initial value
SET @@global.wsrep_provider = @wsrep_provider_global_saved;
--echo # End of test
--source include/have_wsrep.inc
--echo #
--echo # wsrep_provider_options
--echo #
call mtr.add_suppression("WSREP: Failed to get provider options");
--echo # default
SELECT @@global.wsrep_provider_options;
--echo
--echo # scope
--error ER_INCORRECT_GLOBAL_LOCAL_VAR
SELECT @@session.wsrep_provider_options;
--error 0,ER_WRONG_ARGUMENTS
SET @@global.wsrep_provider_options='option1';
SELECT @@global.wsrep_provider_options;
--echo
--echo # valid values
--error ER_WRONG_ARGUMENTS
SET @@global.wsrep_provider_options='name1=value1;name2=value2';
SELECT @@global.wsrep_provider_options;
--error ER_WRONG_ARGUMENTS
SET @@global.wsrep_provider_options='hyphenated-name:value';
SELECT @@global.wsrep_provider_options;
--error ER_WRONG_ARGUMENTS
SET @@global.wsrep_provider_options=default;
SELECT @@global.wsrep_provider_options;
--echo
--echo # invalid values
--error ER_WRONG_TYPE_FOR_VAR
SET @@global.wsrep_provider_options=1;
SELECT @@global.wsrep_provider_options;
--error ER_WRONG_ARGUMENTS,ER_WRONG_ARGUMENTS
SET @@global.wsrep_provider_options=NULL;
SELECT @@global.wsrep_provider_options;
--echo # End of test
...@@ -10,3 +10,7 @@ ...@@ -10,3 +10,7 @@
# #
############################################################################## ##############################################################################
mdev_6832: wsrep_provider is read-only for security reasons
MDEV-23092: wsrep_provider is read-only for security reasons
wsrep_variables_no_provider: wsrep_provider is read-only for security reasons
...@@ -14,7 +14,6 @@ SET SESSION wsrep_replicate_myisam= ON; ...@@ -14,7 +14,6 @@ SET SESSION wsrep_replicate_myisam= ON;
ERROR HY000: Variable 'wsrep_replicate_myisam' is a GLOBAL variable and should be set with SET GLOBAL ERROR HY000: Variable 'wsrep_replicate_myisam' is a GLOBAL variable and should be set with SET GLOBAL
SET GLOBAL wsrep_replicate_myisam= ON; SET GLOBAL wsrep_replicate_myisam= ON;
SET GLOBAL wsrep_replicate_myisam= OFF; SET GLOBAL wsrep_replicate_myisam= OFF;
SET GLOBAL wsrep_provider=none;
# #
# MDEV#5790: SHOW GLOBAL STATUS LIKE does not show the correct list of # MDEV#5790: SHOW GLOBAL STATUS LIKE does not show the correct list of
# variables when using "_" # variables when using "_"
...@@ -26,7 +25,6 @@ wsrep_local_state_comment # ...@@ -26,7 +25,6 @@ wsrep_local_state_comment #
# Should show nothing. # Should show nothing.
SHOW STATUS LIKE 'x'; SHOW STATUS LIKE 'x';
Variable_name Value Variable_name Value
SET GLOBAL wsrep_provider=none;
SHOW STATUS LIKE 'wsrep_local_state_uuid'; SHOW STATUS LIKE 'wsrep_local_state_uuid';
Variable_name Value Variable_name Value
...@@ -35,7 +33,6 @@ wsrep_local_state_uuid # ...@@ -35,7 +33,6 @@ wsrep_local_state_uuid #
SHOW STATUS LIKE 'wsrep_last_committed'; SHOW STATUS LIKE 'wsrep_last_committed';
Variable_name Value Variable_name Value
wsrep_last_committed # wsrep_last_committed #
SET GLOBAL wsrep_provider=none;
# #
# MDEV#6206: wsrep_slave_threads subtracts from max_connections # MDEV#6206: wsrep_slave_threads subtracts from max_connections
...@@ -49,7 +46,7 @@ SELECT @@global.wsrep_slave_threads; ...@@ -49,7 +46,7 @@ SELECT @@global.wsrep_slave_threads;
1 1
SELECT @@global.wsrep_cluster_address; SELECT @@global.wsrep_cluster_address;
@@global.wsrep_cluster_address @@global.wsrep_cluster_address
gcomm://
SELECT @@global.wsrep_on; SELECT @@global.wsrep_on;
@@global.wsrep_on @@global.wsrep_on
1 1
...@@ -58,14 +55,14 @@ Variable_name Value ...@@ -58,14 +55,14 @@ Variable_name Value
Threads_connected 1 Threads_connected 1
SHOW STATUS LIKE 'wsrep_thread_count'; SHOW STATUS LIKE 'wsrep_thread_count';
Variable_name Value Variable_name Value
wsrep_thread_count 0 wsrep_thread_count 2
SELECT @@global.wsrep_provider; SELECT @@global.wsrep_provider;
@@global.wsrep_provider @@global.wsrep_provider
libgalera_smm.so libgalera_smm.so
SELECT @@global.wsrep_cluster_address; SELECT @@global.wsrep_cluster_address;
@@global.wsrep_cluster_address @@global.wsrep_cluster_address
gcomm://
SELECT @@global.wsrep_on; SELECT @@global.wsrep_on;
@@global.wsrep_on @@global.wsrep_on
1 1
...@@ -74,11 +71,10 @@ Variable_name Value ...@@ -74,11 +71,10 @@ Variable_name Value
Threads_connected 1 Threads_connected 1
SHOW STATUS LIKE 'wsrep_thread_count'; SHOW STATUS LIKE 'wsrep_thread_count';
Variable_name Value Variable_name Value
wsrep_thread_count 0 wsrep_thread_count 2
# Setting wsrep_cluster_address triggers the creation of # Setting wsrep_cluster_address triggers the creation of
# applier/rollbacker threads. # applier/rollbacker threads.
SET GLOBAL wsrep_cluster_address= 'gcomm://';
# Wait for applier thread to get created 1. # Wait for applier thread to get created 1.
# Wait for applier thread to get created 2. # Wait for applier thread to get created 2.
SELECT VARIABLE_VALUE AS EXPECT_1 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_applier_thread_count'; SELECT VARIABLE_VALUE AS EXPECT_1 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_applier_thread_count';
......
...@@ -22,7 +22,7 @@ SET GLOBAL wsrep_replicate_myisam= ON; ...@@ -22,7 +22,7 @@ SET GLOBAL wsrep_replicate_myisam= ON;
# Reset it back. # Reset it back.
SET GLOBAL wsrep_replicate_myisam= OFF; SET GLOBAL wsrep_replicate_myisam= OFF;
SET GLOBAL wsrep_provider=none; #SET GLOBAL wsrep_provider=none;
--echo # --echo #
--echo # MDEV#5790: SHOW GLOBAL STATUS LIKE does not show the correct list of --echo # MDEV#5790: SHOW GLOBAL STATUS LIKE does not show the correct list of
...@@ -31,9 +31,7 @@ SET GLOBAL wsrep_provider=none; ...@@ -31,9 +31,7 @@ SET GLOBAL wsrep_provider=none;
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.*");
--disable_query_log #evalp SET GLOBAL wsrep_provider= '$WSREP_PROVIDER';
eval SET GLOBAL wsrep_provider= '$WSREP_PROVIDER';
--enable_query_log
--replace_column 2 # --replace_column 2 #
SHOW GLOBAL STATUS LIKE 'wsrep_local_state_comment'; SHOW GLOBAL STATUS LIKE 'wsrep_local_state_comment';
...@@ -42,11 +40,9 @@ SHOW GLOBAL STATUS LIKE 'wsrep_local_state_comment'; ...@@ -42,11 +40,9 @@ SHOW GLOBAL STATUS LIKE 'wsrep_local_state_comment';
SHOW STATUS LIKE 'x'; SHOW STATUS LIKE 'x';
# Reset it back. # Reset it back.
SET GLOBAL wsrep_provider=none; #SET GLOBAL wsrep_provider=none;
--disable_query_log #evalp SET GLOBAL wsrep_provider= '$WSREP_PROVIDER';
eval SET GLOBAL wsrep_provider= '$WSREP_PROVIDER';
--enable_query_log
# The following 2 variables are used by mariabackup # The following 2 variables are used by mariabackup
# SST. # SST.
...@@ -58,7 +54,7 @@ SHOW STATUS LIKE 'wsrep_local_state_uuid'; ...@@ -58,7 +54,7 @@ SHOW STATUS LIKE 'wsrep_local_state_uuid';
SHOW STATUS LIKE 'wsrep_last_committed'; SHOW STATUS LIKE 'wsrep_last_committed';
# Reset it back. # Reset it back.
SET GLOBAL wsrep_provider=none; #SET GLOBAL wsrep_provider=none;
--echo --echo
--echo # --echo #
...@@ -66,9 +62,7 @@ SET GLOBAL wsrep_provider=none; ...@@ -66,9 +62,7 @@ SET GLOBAL wsrep_provider=none;
--echo # --echo #
call mtr.add_suppression("WSREP: Failed to get provider options"); call mtr.add_suppression("WSREP: Failed to get provider options");
--disable_query_log #evalp SET GLOBAL wsrep_provider= '$WSREP_PROVIDER';
eval SET GLOBAL wsrep_provider= '$WSREP_PROVIDER';
--enable_query_log
--replace_regex /.*libgalera.*smm.*/libgalera_smm.so/ --replace_regex /.*libgalera.*smm.*/libgalera_smm.so/
SELECT @@global.wsrep_provider; SELECT @@global.wsrep_provider;
...@@ -79,9 +73,7 @@ SHOW STATUS LIKE 'threads_connected'; ...@@ -79,9 +73,7 @@ SHOW STATUS LIKE 'threads_connected';
SHOW STATUS LIKE 'wsrep_thread_count'; SHOW STATUS LIKE 'wsrep_thread_count';
--echo --echo
--disable_query_log #evalp SET GLOBAL wsrep_provider= '$WSREP_PROVIDER';
eval SET GLOBAL wsrep_provider= '$WSREP_PROVIDER';
--enable_query_log
--replace_regex /.*libgalera.*smm.*/libgalera_smm.so/ --replace_regex /.*libgalera.*smm.*/libgalera_smm.so/
SELECT @@global.wsrep_provider; SELECT @@global.wsrep_provider;
...@@ -93,7 +85,7 @@ SHOW STATUS LIKE 'wsrep_thread_count'; ...@@ -93,7 +85,7 @@ SHOW STATUS LIKE 'wsrep_thread_count';
--echo # Setting wsrep_cluster_address triggers the creation of --echo # Setting wsrep_cluster_address triggers the creation of
--echo # applier/rollbacker threads. --echo # applier/rollbacker threads.
SET GLOBAL wsrep_cluster_address= 'gcomm://'; #SET GLOBAL wsrep_cluster_address= 'gcomm://';
--echo # Wait for applier thread to get created 1. --echo # Wait for applier thread to get created 1.
--let $wait_condition = SELECT VARIABLE_VALUE = 1 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_applier_thread_count'; --let $wait_condition = SELECT VARIABLE_VALUE = 1 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_applier_thread_count';
...@@ -154,15 +146,6 @@ SET @@global.wsrep_sst_auth= NULL; ...@@ -154,15 +146,6 @@ SET @@global.wsrep_sst_auth= NULL;
SELECT @@global.wsrep_sst_auth; SELECT @@global.wsrep_sst_auth;
SET @@global.wsrep_sst_auth= @wsrep_sst_auth_saved; SET @@global.wsrep_sst_auth= @wsrep_sst_auth_saved;
# Reset (for mtr internal checks)
--disable_query_log
SET GLOBAL wsrep_slave_threads= @wsrep_slave_threads_saved;
eval SET GLOBAL wsrep_provider= '$WSREP_PROVIDER';
SET GLOBAL wsrep_cluster_address= @wsrep_cluster_address_saved;
SET GLOBAL wsrep_provider_options= @wsrep_provider_options_saved;
--enable_query_log
--source include/galera_wait_ready.inc --source include/galera_wait_ready.inc
--echo # End of test. --echo # End of test.
...@@ -5669,7 +5669,7 @@ static Sys_var_tz Sys_time_zone( ...@@ -5669,7 +5669,7 @@ static Sys_var_tz Sys_time_zone(
static Sys_var_charptr_fscs Sys_wsrep_provider( static Sys_var_charptr_fscs Sys_wsrep_provider(
"wsrep_provider", "Path to replication provider library", "wsrep_provider", "Path to replication provider library",
PREALLOCATED GLOBAL_VAR(wsrep_provider), CMD_LINE(REQUIRED_ARG), PREALLOCATED READ_ONLY GLOBAL_VAR(wsrep_provider), CMD_LINE(REQUIRED_ARG),
DEFAULT(WSREP_NONE), DEFAULT(WSREP_NONE),
NO_MUTEX_GUARD, NOT_IN_BINLOG, NO_MUTEX_GUARD, NOT_IN_BINLOG,
ON_CHECK(wsrep_provider_check), ON_UPDATE(wsrep_provider_update)); ON_CHECK(wsrep_provider_check), ON_UPDATE(wsrep_provider_update));
...@@ -5885,7 +5885,7 @@ static Sys_var_ulong Sys_wsrep_max_ws_rows ( ...@@ -5885,7 +5885,7 @@ static Sys_var_ulong Sys_wsrep_max_ws_rows (
static Sys_var_charptr Sys_wsrep_notify_cmd( static Sys_var_charptr Sys_wsrep_notify_cmd(
"wsrep_notify_cmd", "", "wsrep_notify_cmd", "",
GLOBAL_VAR(wsrep_notify_cmd),CMD_LINE(REQUIRED_ARG), READ_ONLY GLOBAL_VAR(wsrep_notify_cmd), CMD_LINE(REQUIRED_ARG),
DEFAULT("")); DEFAULT(""));
static Sys_var_mybool Sys_wsrep_certify_nonPK( static Sys_var_mybool Sys_wsrep_certify_nonPK(
......
...@@ -27,10 +27,12 @@ void wsrep_notify_status(enum wsrep::server_state::state status, ...@@ -27,10 +27,12 @@ void wsrep_notify_status(enum wsrep::server_state::state status,
return; return;
} }
char cmd_buf[1 << 16]; // this can be long const long cmd_len = (1 << 16) - 1;
long cmd_len= sizeof(cmd_buf) - 1; char* cmd_ptr = (char*) my_malloc(PSI_NOT_INSTRUMENTED, cmd_len + 1, MYF(MY_WME));
char* cmd_ptr= cmd_buf; long cmd_off = 0;
long cmd_off= 0;
if (!cmd_ptr)
return; // the warning is in the log
cmd_off += snprintf (cmd_ptr + cmd_off, cmd_len - cmd_off, "%s", cmd_off += snprintf (cmd_ptr + cmd_off, cmd_len - cmd_off, "%s",
wsrep_notify_cmd); wsrep_notify_cmd);
...@@ -73,6 +75,7 @@ void wsrep_notify_status(enum wsrep::server_state::state status, ...@@ -73,6 +75,7 @@ void wsrep_notify_status(enum wsrep::server_state::state status,
{ {
WSREP_ERROR("Notification buffer too short (%ld). Aborting notification.", WSREP_ERROR("Notification buffer too short (%ld). Aborting notification.",
cmd_len); cmd_len);
my_free(cmd_ptr);
return; return;
} }
...@@ -86,5 +89,6 @@ void wsrep_notify_status(enum wsrep::server_state::state status, ...@@ -86,5 +89,6 @@ void wsrep_notify_status(enum wsrep::server_state::state status,
WSREP_ERROR("Notification command failed: %d (%s): \"%s\"", WSREP_ERROR("Notification command failed: %d (%s): \"%s\"",
err, strerror(err), cmd_ptr); err, strerror(err), cmd_ptr);
} }
my_free(cmd_ptr);
} }
...@@ -2136,11 +2136,13 @@ static os_thread_ret_t DECLARE_THREAD(buf_flush_page_cleaner)(void*) ...@@ -2136,11 +2136,13 @@ static os_thread_ret_t DECLARE_THREAD(buf_flush_page_cleaner)(void*)
double(UT_LIST_GET_LEN(buf_pool.LRU) + UT_LIST_GET_LEN(buf_pool.free)); double(UT_LIST_GET_LEN(buf_pool.LRU) + UT_LIST_GET_LEN(buf_pool.free));
if (lsn_limit); if (lsn_limit);
else if (srv_max_dirty_pages_pct_lwm != 0.0)
{
if (dirty_pct < srv_max_dirty_pages_pct_lwm)
goto unemployed;
}
else if (dirty_pct < srv_max_buf_pool_modified_pct) else if (dirty_pct < srv_max_buf_pool_modified_pct)
goto unemployed; goto unemployed;
else if (srv_max_dirty_pages_pct_lwm == 0.0 ||
dirty_pct < srv_max_dirty_pages_pct_lwm)
goto unemployed;
const lsn_t oldest_lsn= buf_pool.get_oldest_modified() const lsn_t oldest_lsn= buf_pool.get_oldest_modified()
->oldest_modification(); ->oldest_modification();
......
...@@ -17206,10 +17206,10 @@ innodb_max_dirty_pages_pct_update( ...@@ -17206,10 +17206,10 @@ innodb_max_dirty_pages_pct_update(
in_val); in_val);
srv_max_dirty_pages_pct_lwm = in_val; srv_max_dirty_pages_pct_lwm = in_val;
pthread_cond_signal(&buf_pool.do_flush_list);
} }
srv_max_buf_pool_modified_pct = in_val; srv_max_buf_pool_modified_pct = in_val;
pthread_cond_signal(&buf_pool.do_flush_list);
} }
/****************************************************************//** /****************************************************************//**
......
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