diff options
Diffstat (limited to 'mysql-test/suite/galera_3nodes/t')
20 files changed, 234 insertions, 170 deletions
diff --git a/mysql-test/suite/galera_3nodes/t/GAL-501.test b/mysql-test/suite/galera_3nodes/t/GAL-501.test index a36f21630ac..c4b17cdb21e 100644 --- a/mysql-test/suite/galera_3nodes/t/GAL-501.test +++ b/mysql-test/suite/galera_3nodes/t/GAL-501.test @@ -7,6 +7,12 @@ --source include/galera_cluster.inc --source include/check_ipv6.inc +--let $galera_connection_name = node_3 +--let $galera_server_number = 3 +--source include/galera_connect.inc +--connection node_3 +--source include/galera_wait_ready.inc + # Confirm that initial handshake happened over ipv6 SELECT VARIABLE_VALUE LIKE '%[::1]%' FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_incoming_addresses'; diff --git a/mysql-test/suite/galera_3nodes/t/galera_certification_double_failure.test b/mysql-test/suite/galera_3nodes/t/galera_certification_double_failure.test index a2ad0765028..5366d2a4a6e 100644 --- a/mysql-test/suite/galera_3nodes/t/galera_certification_double_failure.test +++ b/mysql-test/suite/galera_3nodes/t/galera_certification_double_failure.test @@ -29,5 +29,7 @@ INSERT INTO t2 VALUES (1); --error ER_LOCK_DEADLOCK COMMIT; +--connection node_3 +--source include/galera_wait_ready.inc DROP TABLE t1; DROP TABLE t2; diff --git a/mysql-test/suite/galera_3nodes/t/galera_evs_suspect_timeout.test b/mysql-test/suite/galera_3nodes/t/galera_evs_suspect_timeout.test index 136fc8fd8a0..3f1140b175d 100644 --- a/mysql-test/suite/galera_3nodes/t/galera_evs_suspect_timeout.test +++ b/mysql-test/suite/galera_3nodes/t/galera_evs_suspect_timeout.test @@ -60,17 +60,17 @@ SELECT COUNT(*) FROM t1; # Reconnect node #3 so that MTR's end-of-test checks can run ---source include/galera_resume.inc --connection node_3 +--source include/galera_resume.inc --source include/wait_until_connected_again.inc -CALL mtr.add_suppression("WSREP: gcs_caused.*"); -CALL mtr.add_suppression("WSREP: gcs/src/gcs_core.cpp:core_handle_uuid_msg.*"); - --disable_query_log --eval SET GLOBAL wsrep_cluster_address = '$wsrep_cluster_address_node3'; --enable_query_log ---source include/wait_until_connected_again.inc +--source include/galera_wait_ready.inc + +CALL mtr.add_suppression("WSREP: gcs_caused"); +CALL mtr.add_suppression("WSREP: gcs/src/gcs_core.cpp:core_handle_uuid_msg"); SET SESSION wsrep_sync_wait = 15; SELECT COUNT(*) FROM t1; @@ -79,4 +79,3 @@ SELECT COUNT(*) FROM t1; DROP TABLE t1; # Restore original auto_increment_offset values. --source ../galera/include/auto_increment_offset_restore.inc - diff --git a/mysql-test/suite/galera_3nodes/t/galera_garbd.test b/mysql-test/suite/galera_3nodes/t/galera_garbd.test index 3992259c732..05b1b25930f 100644 --- a/mysql-test/suite/galera_3nodes/t/galera_garbd.test +++ b/mysql-test/suite/galera_3nodes/t/galera_garbd.test @@ -8,9 +8,20 @@ --source include/have_garbd.inc --source include/big_test.inc +# Save galera ports +--connection node_1 +--source suite/galera/include/galera_base_port.inc +--let $NODE_GALERAPORT_1 = $_NODE_GALERAPORT + +--connection node_2 +--source suite/galera/include/galera_base_port.inc +--let $NODE_GALERAPORT_2 = $_NODE_GALERAPORT + --let $galera_connection_name = node_3 --let $galera_server_number = 3 --source include/galera_connect.inc +--source suite/galera/include/galera_base_port.inc +--let $NODE_GALERAPORT_3 = $_NODE_GALERAPORT # Save original auto_increment_offset values. --let $node_1=node_1 @@ -20,8 +31,6 @@ --echo Killing node #3 to free ports for garbd ... --connection node_3 ---let $gp3 = `SELECT SUBSTR(@@wsrep_provider_options, LOCATE('base_port =', @@wsrep_provider_options) + LENGTH('base_port = '))` ---let $galera_port_3 = `SELECT SUBSTR('$gp3', 1, LOCATE(';', '$gp3') - 1)` --source include/shutdown_mysqld.inc --connection node_1 @@ -29,9 +38,7 @@ --source include/wait_condition.inc --echo Starting garbd ... ---let $gp1 = `SELECT SUBSTR(@@wsrep_provider_options, LOCATE('base_port =', @@wsrep_provider_options) + LENGTH('base_port = '))` ---let $galera_port_1 = `SELECT SUBSTR('$gp1', 1, LOCATE(';', '$gp1') - 1)` ---exec $MTR_GARBD_EXE --address "gcomm://127.0.0.1:$galera_port_1" --group my_wsrep_cluster --options 'base_port=$galera_port_3' > $MYSQL_TMP_DIR/garbd.log 2>&1 & +--exec $MTR_GARBD_EXE --address "gcomm://127.0.0.1:$NODE_GALERAPORT_1" --group my_wsrep_cluster --options 'base_port=$NODE_GALERAPORT_3' > $MYSQL_TMP_DIR/garbd.log 2>&1 & --sleep 5 @@ -45,7 +52,10 @@ INSERT INTO t1 VALUES (1); SELECT COUNT(*) = 1 FROM t1; --echo Killing garbd ... ---exec pkill --oldest --full garbd.*$galera_port_3 +# FreeBSD's /bin/pkill only supports short versions of the options: +# -o Select only the oldest (least recently started) +# -f Match against full argument lists +--exec pkill -o -f garbd.*$NODE_GALERAPORT_3 --sleep 5 @@ -62,6 +72,7 @@ DROP TABLE t1; --echo Restarting node #3 to satisfy MTR's end-of-test checks --connection node_3 +let $restart_noprint=2; --source include/start_mysqld.inc # Restore original auto_increment_offset values. diff --git a/mysql-test/suite/galera_3nodes/t/galera_gtid_2_cluster.test b/mysql-test/suite/galera_3nodes/t/galera_gtid_2_cluster.test index c679db1305d..925600ffaa8 100644 --- a/mysql-test/suite/galera_3nodes/t/galera_gtid_2_cluster.test +++ b/mysql-test/suite/galera_3nodes/t/galera_gtid_2_cluster.test @@ -138,27 +138,45 @@ select @@gtid_binlog_state; drop table t1; stop slave; reset slave; + +--echo cluster 2 node 1 +--connection node_4 +stop slave; +reset slave; + +--echo cluster 1 node 1 +--connection node_1 change master to master_use_gtid=no, ignore_server_ids=(); +set global wsrep_on=OFF; reset master; +set global wsrep_on=ON; set global GTID_SLAVE_POS=""; --sleep 2 --echo cluster 2 node 1 --connection node_4 -stop slave; -reset slave; change master to master_use_gtid=no, ignore_server_ids=(); +set global wsrep_on=OFF; reset master; +set global wsrep_on=ON; set global GTID_SLAVE_POS=""; --connection node_2 +set global wsrep_on=OFF; reset master; +set global wsrep_on=ON; --connection node_3 +set global wsrep_on=OFF; reset master; +set global wsrep_on=ON; --connection node_5 +set global wsrep_on=OFF; reset master; +set global wsrep_on=ON; --connection node_6 +set global wsrep_on=OFF; reset master; +set global wsrep_on=ON; #--enable_parsing # # This test creates 2x 3 nodes galera cluster. @@ -272,21 +290,33 @@ select @@gtid_binlog_state; drop table t1; stop slave; change master to master_use_gtid=no, ignore_server_ids=(); +set global wsrep_on=OFF; reset master; +set global wsrep_on=ON; set global GTID_SLAVE_POS=""; --echo cluster 2 node 1 --connection node_4 stop slave; change master to master_use_gtid=no, ignore_server_ids=(); +set global wsrep_on=OFF; reset master; +set global wsrep_on=ON; set global GTID_SLAVE_POS=""; --connection node_2 +set global wsrep_on=OFF; reset master; +set global wsrep_on=ON; --connection node_3 +set global wsrep_on=OFF; reset master; +set global wsrep_on=ON; --connection node_5 +set global wsrep_on=OFF; reset master; +set global wsrep_on=ON; --connection node_6 +set global wsrep_on=OFF; reset master; +set global wsrep_on=ON; diff --git a/mysql-test/suite/galera_3nodes/t/galera_innobackupex_backup.test b/mysql-test/suite/galera_3nodes/t/galera_innobackupex_backup.test index 8dfb4660f3e..cd5c020ae38 100644 --- a/mysql-test/suite/galera_3nodes/t/galera_innobackupex_backup.test +++ b/mysql-test/suite/galera_3nodes/t/galera_innobackupex_backup.test @@ -4,7 +4,7 @@ --source include/galera_cluster.inc --source include/have_innodb.inc ---source include/have_mariabackup.inc +--source suite/galera/include/have_mariabackup.inc --let $galera_connection_name = node_3 --let $galera_server_number = 3 diff --git a/mysql-test/suite/galera_3nodes/t/galera_ipv6_mariabackup.cnf b/mysql-test/suite/galera_3nodes/t/galera_ipv6_mariabackup.cnf index 5ac00fa056b..969f364a1ec 100644 --- a/mysql-test/suite/galera_3nodes/t/galera_ipv6_mariabackup.cnf +++ b/mysql-test/suite/galera_3nodes/t/galera_ipv6_mariabackup.cnf @@ -10,18 +10,23 @@ wsrep-cluster-address=gcomm:// wsrep_provider_options='base_host=[::1];base_port=@mysqld.1.#galera_port;gmcast.listen_addr=tcp://[::]:@mysqld.1.#galera_port;ist.recv_addr=[::1]:@mysqld.1.#ist_port' wsrep_sst_receive_address='[::1]:@mysqld.1.#sst_port' wsrep_node_incoming_address='[::1]:@mysqld.1.port' +wsrep_node_name=node_1 [mysqld.2] wsrep_cluster_address='gcomm://[::1]:@mysqld.1.#galera_port' wsrep_provider_options='base_host=[::1];base_port=@mysqld.2.#galera_port;gmcast.listen_addr=tcp://[::]:@mysqld.2.#galera_port;ist.recv_addr=[::1]:@mysqld.2.#ist_port' wsrep_sst_receive_address='[::1]:@mysqld.2.#sst_port' wsrep_node_incoming_address='[::1]:@mysqld.2.port' +wsrep_node_name=node_2 +wsrep_sst_donor=node_1 [mysqld.3] wsrep_cluster_address='gcomm://[::1]:@mysqld.1.#galera_port' wsrep_provider_options='base_host=[::1];base_port=@mysqld.3.#galera_port;gmcast.listen_addr=tcp://[::]:@mysqld.3.#galera_port;ist.recv_addr=[::1]:@mysqld.3.#ist_port' wsrep_sst_receive_address='[::1]:@mysqld.3.#sst_port' wsrep_node_incoming_address='[::1]:@mysqld.3.port' +wsrep_node_name=node_3 +wsrep_sst_donor=node_1 [SST] transferfmt=@ENV.MTR_GALERA_TFMT diff --git a/mysql-test/suite/galera_3nodes/t/galera_ipv6_mariabackup.test b/mysql-test/suite/galera_3nodes/t/galera_ipv6_mariabackup.test index 808dad0dbb2..7f73e36c0b8 100644 --- a/mysql-test/suite/galera_3nodes/t/galera_ipv6_mariabackup.test +++ b/mysql-test/suite/galera_3nodes/t/galera_ipv6_mariabackup.test @@ -39,22 +39,31 @@ DROP TABLE t1; --let $assert_file = $MYSQLTEST_VARDIR/log/mysqld.1.err --let $assert_only_after = CURRENT_TEST +# The SSTs happen when nodes are started first time --let $assert_count = 2 --let $assert_text = Streaming the backup to joiner at \[::1\] --let $assert_select = Streaming the backup to joiner at \[::1\] --source include/assert_grep.inc ---let $assert_count = 1 +# There will be 3 ISTs donated from node_1 in Galera 4. +# Two first happen at the initial startup to populate the certification +# index. The third one is from the IST which happens during the actual test. +--let $assert_count = 3 --let $assert_text = async IST sender starting to serve tcp://\[::1\]: --let $assert_select = async IST sender starting to serve tcp://\[::1\]: --source include/assert_grep.inc --let $assert_file = $MYSQLTEST_VARDIR/log/mysqld.2.err +# There are two ISTs on joiner, the first at the initial startup, the second +# during the actual test. +--let $assert_count = 2 --let $assert_text = IST receiver addr using tcp://\[::1\] --let $assert_select = IST receiver addr using tcp://\[::1\] --source include/assert_grep.inc ---let $assert_text = Prepared IST receiver, listening at: tcp://\[::1\] ---let $assert_select = Prepared IST receiver, listening at: tcp://\[::1\] +# The receiver expects seqnos 3-6 only once. +--let $assert_count = 1 +--let $assert_text = Prepared IST receiver for 3-6, listening at: tcp://\[::1\] +--let $assert_select = Prepared IST receiver for 3-6, listening at: tcp://\[::1\] --source include/assert_grep.inc diff --git a/mysql-test/suite/galera_3nodes/t/galera_ipv6_mariabackup_section.test b/mysql-test/suite/galera_3nodes/t/galera_ipv6_mariabackup_section.test index 72f4fde299b..fd76c3586ca 100644 --- a/mysql-test/suite/galera_3nodes/t/galera_ipv6_mariabackup_section.test +++ b/mysql-test/suite/galera_3nodes/t/galera_ipv6_mariabackup_section.test @@ -40,15 +40,15 @@ DROP TABLE t1; --let $assert_only_after = CURRENT_TEST # The SSTs happen when nodes are started first time ---let $assert_count= 2 +--let $assert_count = 2 --let $assert_text = Streaming the backup to joiner at \[::1\] --let $assert_select = Streaming the backup to joiner at \[::1\] --source include/assert_grep.inc -# There will be 1 ISTs donated from node_1 in Galera 3. +# There will be 3 ISTs donated from node_1 in Galera 4. # Two first happen at the initial startup to populate the certification # index. The third one is from the IST which happens during the actual test. ---let $assert_count= 1 +--let $assert_count = 3 --let $assert_text = async IST sender starting to serve tcp://\[::1\]: --let $assert_select = async IST sender starting to serve tcp://\[::1\]: --source include/assert_grep.inc @@ -57,14 +57,15 @@ DROP TABLE t1; --let $assert_file = $MYSQLTEST_VARDIR/log/mysqld.2.err --let $assert_only_after = CURRENT_TEST -# There is one ISTs on joiner at Galera 3. ---let $assert_count= 1 +# There are two ISTs on joiner, the first at the initial startup, the second +# during the actual test. +--let $assert_count = 2 --let $assert_text = IST receiver addr using tcp://\[::1\] --let $assert_select = IST receiver addr using tcp://\[::1\] --source include/assert_grep.inc -# There will be only one Prepared IST and in Galera 3 segnos are not printed ---let $assert_count= 1 ---let $assert_text = Prepared IST receiver, listening at: tcp://\[::1\] ---let $assert_select = Prepared IST receiver, listening at: tcp://\[::1\] +# The receiver expects seqnos 3-6 only once. +--let $assert_count = 1 +--let $assert_text = Prepared IST receiver for 3-6, listening at: tcp://\[::1\] +--let $assert_select = Prepared IST receiver for 3-6, listening at: tcp://\[::1\] --source include/assert_grep.inc diff --git a/mysql-test/suite/galera_3nodes/t/galera_ipv6_mysqldump.test b/mysql-test/suite/galera_3nodes/t/galera_ipv6_mysqldump.test index 4a6de8abb9c..c9c32f23230 100644 --- a/mysql-test/suite/galera_3nodes/t/galera_ipv6_mysqldump.test +++ b/mysql-test/suite/galera_3nodes/t/galera_ipv6_mysqldump.test @@ -59,6 +59,7 @@ INSERT INTO t1 VALUES (1); --connection node_2 --echo Starting server ... --let $start_mysqld_params = --wsrep_sst_auth=sst: --wsrep_sst_method=mysqldump --wsrep-sst-receive-address=[::1].1:$NODE_MYPORT_2 +let $restart_noprint=2; --source include/start_mysqld.inc #--source suite/galera/include/galera_load_provider.inc @@ -77,6 +78,11 @@ DROP TABLE t1; SELECT VARIABLE_VALUE LIKE '%[::1]%' FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_incoming_addresses'; +# restart node so we don't fail on WSREP_START_POSITION internal check +--source include/restart_mysqld.inc +--source include/wait_until_connected_again.inc + +--source ../galera/include/auto_increment_offset_restore.inc --source suite/galera/include/galera_sst_restore.inc --connection node_2 CALL mtr.add_suppression("Unsupported protocol downgrade: incremental data collection disabled. Expect abort"); diff --git a/mysql-test/suite/galera_3nodes/t/galera_ist_gcache_rollover.test b/mysql-test/suite/galera_3nodes/t/galera_ist_gcache_rollover.test index ebc756d60b1..69e80ee6c3d 100644 --- a/mysql-test/suite/galera_3nodes/t/galera_ist_gcache_rollover.test +++ b/mysql-test/suite/galera_3nodes/t/galera_ist_gcache_rollover.test @@ -11,7 +11,7 @@ --source include/galera_cluster.inc --source include/have_innodb.inc --source include/have_debug_sync.inc ---source suite/galera/include/galera_have_debug_sync.inc +--source include/galera_have_debug_sync.inc --let $galera_connection_name = node_3 --let $galera_server_number = 3 diff --git a/mysql-test/suite/galera_3nodes/t/galera_load_data_ist.cnf b/mysql-test/suite/galera_3nodes/t/galera_load_data_ist.cnf deleted file mode 100644 index 35ecb8b5937..00000000000 --- a/mysql-test/suite/galera_3nodes/t/galera_load_data_ist.cnf +++ /dev/null @@ -1,4 +0,0 @@ -!include ../galera_3nodes.cnf - -[mysqld] -wsrep-causal-reads=OFF diff --git a/mysql-test/suite/galera_3nodes/t/galera_load_data_ist.test b/mysql-test/suite/galera_3nodes/t/galera_load_data_ist.test deleted file mode 100644 index e1140da229b..00000000000 --- a/mysql-test/suite/galera_3nodes/t/galera_load_data_ist.test +++ /dev/null @@ -1,124 +0,0 @@ ---source include/have_debug_sync.inc ---source include/galera_cluster.inc ---source include/have_innodb.inc ---source include/big_test.inc - -# Establish connection to the third node: ---let $galera_connection_name = node_3 ---let $galera_server_number = 3 ---source include/galera_connect.inc - -# Establish additional connection to the second node -# (which is used in the test for synchronization control): ---let $galera_connection_name = node_2a ---let $galera_server_number = 2 ---source include/galera_connect.inc - -# Save original auto_increment_offset values: ---let $node_1=node_1 ---let $node_2=node_2 ---let $node_3=node_3 ---source ../galera/include/auto_increment_offset_save.inc - -# Create a file for LOAD DATA with 95K entries ---connection node_1 ---perl -open(FILE, ">", "$ENV{'MYSQLTEST_VARDIR'}/tmp/galera_var_load_data_splitting.csv") or die; -foreach my $i (1..95000) { - print FILE "$i\n"; -} -EOF - -CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB; - -# Let's wait for the completion of the formation of a cluster -# of three nodes: ---let $wait_condition = SELECT VARIABLE_VALUE = 3 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size'; ---source include/wait_condition.inc ---connection node_2 ---source include/wait_until_ready.inc ---connection node_3 ---source include/wait_until_ready.inc - -# Disconnect the third node from the cluster: -SET GLOBAL wsrep_provider_options = 'gmcast.isolate = 1'; -SET SESSION wsrep_on = OFF; ---let $wait_condition = SELECT VARIABLE_VALUE = 'non-Primary' FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_status'; ---source include/wait_condition.inc -SET SESSION wsrep_on = ON; -SET SESSION wsrep_sync_wait = 0; - -# Disable sync wait for control connection: ---connection node_2a -SET SESSION wsrep_sync_wait = 0; - -# Let's wait until the other nodes stop seeing the third -# node in the cluster: ---let $wait_condition = SELECT VARIABLE_VALUE = 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size'; ---source include/wait_condition.inc - -# Record wsrep_last_committed as it was before LOAD DATA: ---connection node_2 ---let $wsrep_last_committed_before = `SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME = 'wsrep_last_committed'` - -# Enable splitting for LOAD DATA: ---let $wsrep_load_data_splitting_orig = `SELECT @@wsrep_load_data_splitting` -SET GLOBAL wsrep_load_data_splitting = TRUE; - -# Stop after the first commit and wait for the IST signal: -SET DEBUG_SYNC='intermediate_transaction_commit SIGNAL commited WAIT_FOR ist'; - -# Perform the LOAD DATA statement: ---disable_query_log -let v1='$MYSQLTEST_VARDIR/tmp/galera_var_load_data_splitting.csv'; ---send_eval LOAD DATA INFILE $v1 INTO TABLE t1; ---enable_query_log - -# Wait for the first commit: ---connection node_2a -SET DEBUG_SYNC='now WAIT_FOR commited'; - -# Initiate the IST: ---connection node_3 -SET GLOBAL wsrep_provider_options = 'gmcast.isolate = 0'; - -# Continue the execution of LOAD DATA: ---connection node_2a -SET DEBUG_SYNC='now SIGNAL ist'; - -# Let's wait for the recovery of the cluster -# of three nodes: ---connection node_1 ---let $wait_condition = SELECT VARIABLE_VALUE = 3 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size'; ---source include/wait_condition.inc - -# Save the LOAD DATA results: ---connection node_2 ---reap - -# Reset all synchronization points and signals: -SET DEBUG_SYNC='RESET'; - -# Read the wsrep_last_commited after LOAD DATA: ---let $wsrep_last_committed_after = `SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME = 'wsrep_last_committed'` - -# Check the records: -SELECT COUNT(*) = 95000 FROM t1; - -# LOAD-ing 95K rows should causes 10 commits to be registered: ---disable_query_log ---eval SELECT $wsrep_last_committed_after = $wsrep_last_committed_before + 10 AS wsrep_last_committed_diff; ---enable_query_log - -# Restore the original splitting: ---connection node_1 ---eval SET GLOBAL wsrep_load_data_splitting = $wsrep_load_data_splitting_orig; - -# Drop test table: -DROP TABLE t1; - -# Restore original auto_increment_offset values: ---source ../galera/include/auto_increment_offset_restore.inc - ---let $galera_cluster_size=3 ---source include/galera_end.inc diff --git a/mysql-test/suite/galera_3nodes/t/galera_parallel_apply_3nodes.test b/mysql-test/suite/galera_3nodes/t/galera_parallel_apply_3nodes.test index 7d80d8036a1..659df2b3c93 100644 --- a/mysql-test/suite/galera_3nodes/t/galera_parallel_apply_3nodes.test +++ b/mysql-test/suite/galera_3nodes/t/galera_parallel_apply_3nodes.test @@ -31,7 +31,7 @@ SET GLOBAL wsrep_slave_threads = 2; --connection node_3 SELECT f1 = 111 FROM t1; -SELECT COUNT(*) IN (1, 2) FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system user' AND STATE LIKE 'committed%'; +SELECT COUNT(*) IN (1, 2) FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system user' AND STATE LIKE '%committed%'; --eval SET GLOBAL wsrep_slave_threads = $wsrep_slave_threads_orig; diff --git a/mysql-test/suite/galera_3nodes/t/galera_pc_weight.cnf b/mysql-test/suite/galera_3nodes/t/galera_pc_weight.cnf index 57026ce6928..1a61471d581 100644 --- a/mysql-test/suite/galera_3nodes/t/galera_pc_weight.cnf +++ b/mysql-test/suite/galera_3nodes/t/galera_pc_weight.cnf @@ -1,5 +1,7 @@ -# We need a dedicated .cnf file, even if empty, in order to force this test to run -# alone on a freshly started cluster. Otherwise there are adverse interactions with -# following tests such as galera_3nodes.galera_var_dirty_reads2 +# We need a dedicated .cnf file, even if empty, in order to force this test +# to run alone on a freshly started cluster. Otherwise there are adverse +# interactions with following tests such as +# galera_3nodes.galera_var_dirty_reads2 +!include ../galera_3nodes.cnf !include ../galera_3nodes.cnf diff --git a/mysql-test/suite/galera_3nodes/t/galera_pc_weight.test b/mysql-test/suite/galera_3nodes/t/galera_pc_weight.test index 0a94e7cd85d..0e407e49aba 100644 --- a/mysql-test/suite/galera_3nodes/t/galera_pc_weight.test +++ b/mysql-test/suite/galera_3nodes/t/galera_pc_weight.test @@ -1,11 +1,11 @@ # -# Test the pc.weight wsrep provider option. We set Node #1 to have a high weight and then -# suspend it. This will cause Nodes #2 and #3 to transition to non-primary component. +# Test the pc.weight wsrep provider option. We set Node #1 to have a high +# weight and then suspend it. This will cause Nodes #2 and #3 to transition +# to non-primary component. # --source include/big_test.inc --source include/galera_cluster.inc ---source include/have_innodb.inc --connection node_1 SELECT VARIABLE_VALUE = 3 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_weight'; @@ -55,6 +55,9 @@ SHOW STATUS LIKE 'wsrep_local_state_comment'; --connection node_1 # For Node #1, we expect a primary component of size 1 +# (NOTE: this is a bit racy as nodes 2 and 3 will try to reconnect ASAP. +# to avoid the raice they should be suspended first as well, but that's +# not currently possible) --let $wait_condition = SELECT VARIABLE_VALUE = 1 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size' --source include/wait_condition.inc @@ -85,6 +88,15 @@ SET GLOBAL wsrep_provider_options = 'gmcast.isolate=0'; --connection node_1 --source include/wait_condition.inc +# wait until nodes 2 and 3 have declared ready state (can happen after cluster_size raaise) +--connection node_2 +--let $wait_condition = SELECT VARIABLE_VALUE = 'ON' FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_ready' +--source include/wait_condition.inc + +--connection node_3 +--source include/wait_condition.inc + + # On all nodes, we now expect a Primary component of size 3, weight 3, Synced and ready SELECT VARIABLE_VALUE = 3 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size'; SELECT VARIABLE_VALUE = 3 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_weight'; diff --git a/mysql-test/suite/galera_3nodes/t/galera_safe_to_bootstrap.test b/mysql-test/suite/galera_3nodes/t/galera_safe_to_bootstrap.test index b7b6c66e5ad..8e13aed8f5f 100644 --- a/mysql-test/suite/galera_3nodes/t/galera_safe_to_bootstrap.test +++ b/mysql-test/suite/galera_3nodes/t/galera_safe_to_bootstrap.test @@ -3,17 +3,21 @@ # --source include/galera_cluster.inc +# +# Create connection node_3 and save auto increment variables. +# --let $galera_connection_name = node_3 --let $galera_server_number = 3 --source include/galera_connect.inc -# Save original auto_increment_offset values. ---let $node_1=node_1 ---let $node_2=node_2 ---let $node_3=node_3 +--let $node_1 = node_1 +--let $node_2 = node_2 +--let $node_3 = node_3 + --source ../galera/include/auto_increment_offset_save.inc --connection node_1 + CREATE TABLE t1 (f1 INTEGER) ENGINE=InnoDB; # @@ -58,6 +62,7 @@ CREATE TABLE t1 (f1 INTEGER) ENGINE=InnoDB; # # Shut down one more node # + --connection node_3 --source include/shutdown_mysqld.inc @@ -82,8 +87,8 @@ CREATE TABLE t1 (f1 INTEGER) ENGINE=InnoDB; --source include/assert_grep.inc # Restart one node - --connection node_2 +let $restart_noprint=2; --let $_expect_file_name= $MYSQLTEST_VARDIR/tmp/mysqld.2.expect --source include/start_mysqld.inc @@ -148,15 +153,18 @@ SET SESSION wsrep_on = OFF; --connection node_1 --let $_expect_file_name= $MYSQLTEST_VARDIR/tmp/mysqld.1.expect +let $restart_noprint=2; --source include/start_mysqld.inc --source include/wait_until_connected_again.inc --connection node_2 --let $_expect_file_name= $MYSQLTEST_VARDIR/tmp/mysqld.2.expect +let $restart_noprint=2; --source include/start_mysqld.inc --connection node_3 --let $_expect_file_name= $MYSQLTEST_VARDIR/tmp/mysqld.3.expect +let $restart_noprint=2; --source include/start_mysqld.inc --let $wait_condition = SELECT VARIABLE_VALUE = 3 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size'; @@ -169,6 +177,12 @@ CALL mtr.add_suppression("WSREP: wsrep::connect(.*) failed: 7"); CALL mtr.add_suppression("Aborting"); CALL mtr.add_suppression("WSREP: moving position backwards: [0-9]+ -> 0"); CALL mtr.add_suppression("Failed to prepare for incremental state transfer"); +CALL mtr.add_suppression("It may not be safe to bootstrap the cluster from this node"); +CALL mtr.add_suppression("Aborting"); +CALL mtr.add_suppression("Plugin 'wsrep' init function returned error."); +CALL mtr.add_suppression("Plugin 'wsrep' registration as a STORAGE ENGINE failed."); +CALL mtr.add_suppression("Failed to initialize plugins."); +CALL mtr.add_suppression("WSREP: gcs/src/gcs_core.cpp:core_handle_uuid_msg()"); --connection node_3 CALL mtr.add_suppression("WSREP: no nodes coming from prim view, prim not possible"); @@ -177,9 +191,18 @@ CALL mtr.add_suppression("WSREP: wsrep::connect(.*) failed: 7"); CALL mtr.add_suppression("Aborting"); CALL mtr.add_suppression("WSREP: moving position backwards: [0-9]+ -> 0"); CALL mtr.add_suppression("Failed to prepare for incremental state transfer"); +CALL mtr.add_suppression("It may not be safe to bootstrap the cluster from this node"); +CALL mtr.add_suppression("Aborting"); +CALL mtr.add_suppression("Plugin 'wsrep' init function returned error."); +CALL mtr.add_suppression("Plugin 'wsrep' registration as a STORAGE ENGINE failed."); +CALL mtr.add_suppression("Failed to initialize plugins."); +CALL mtr.add_suppression("WSREP: gcs/src/gcs_core.cpp:core_handle_uuid_msg()"); + SHOW CREATE TABLE t1; DROP TABLE t1; -# Restore original auto_increment_offset values. +# +# Restore auto increment variables. +# --source ../galera/include/auto_increment_offset_restore.inc diff --git a/mysql-test/suite/galera_3nodes/t/galera_slave_options_ignore.test b/mysql-test/suite/galera_3nodes/t/galera_slave_options_ignore.test index 3e8b1557e7b..8e73dee70ae 100644 --- a/mysql-test/suite/galera_3nodes/t/galera_slave_options_ignore.test +++ b/mysql-test/suite/galera_3nodes/t/galera_slave_options_ignore.test @@ -25,6 +25,7 @@ SELECT COUNT(*) = 1 FROM db2.t2B; --connect node_3, 127.0.0.1, root, , test, $NODE_MYPORT_3 --connection node_3 +--source include/galera_wait_ready.inc SELECT COUNT(*) = 0 FROM db1.t1; SELECT COUNT(*) = 1 FROM db2.t2A; SELECT COUNT(*) = 1 FROM db2.t2B; diff --git a/mysql-test/suite/galera_3nodes/t/galera_var_dirty_reads2.test b/mysql-test/suite/galera_3nodes/t/galera_var_dirty_reads2.test index e3f94a012b8..9f9d6da17b9 100644 --- a/mysql-test/suite/galera_3nodes/t/galera_var_dirty_reads2.test +++ b/mysql-test/suite/galera_3nodes/t/galera_var_dirty_reads2.test @@ -117,8 +117,9 @@ SET GLOBAL wsrep_provider_options='gmcast.isolate=0'; --source include/wait_condition.inc --connection node_2 ---let $wait_condition = SELECT VARIABLE_VALUE = 'Primary' FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_status'; +--let $wait_condition = SELECT VARIABLE_VALUE = 3 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size'; --source include/wait_condition.inc +--source include/galera_wait_ready.inc DROP TABLE t1; diff --git a/mysql-test/suite/galera_3nodes/t/galera_wsrep_schema.test b/mysql-test/suite/galera_3nodes/t/galera_wsrep_schema.test new file mode 100644 index 00000000000..fb3af2cd25d --- /dev/null +++ b/mysql-test/suite/galera_3nodes/t/galera_wsrep_schema.test @@ -0,0 +1,84 @@ +# +# This test performs basic checks on the contents of the wsrep_schema +# +# wsrep_members_history checks are temporarily disabled until it +# can be made configurable. +# + +--source include/galera_cluster.inc +--source include/have_innodb.inc + +--connect node_3, 127.0.0.1, root, , test, $NODE_MYPORT_3 +--connection node_1 +# Save original auto_increment_offset values. +--let $node_1=node_1 +--let $node_2=node_2 +--let $node_3=node_3 +--source ../galera/include/auto_increment_offset_save.inc + +# Make the test fail if table structure has changed + +SHOW CREATE TABLE mysql.wsrep_cluster; +SHOW CREATE TABLE mysql.wsrep_cluster_members; +#disabled SHOW CREATE TABLE mysql.wsrep_member_history; + +# Checks for the wsrep_cluster table + +SELECT COUNT(*) = 1 FROM mysql.wsrep_cluster; +SELECT cluster_uuid = (SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_state_uuid') FROM mysql.wsrep_cluster; + +# Checks for the wsrep_cluster_members table + +SELECT COUNT(*) = 3 FROM mysql.wsrep_cluster_members; +SELECT COUNT(*) = (SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size') FROM mysql.wsrep_cluster_members; +SELECT COUNT(*) = 1 FROM mysql.wsrep_cluster_members WHERE node_uuid = (SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_gcomm_uuid'); + +SELECT node_incoming_address LIKE '127.0.0.1:%' from mysql.wsrep_cluster_members; +SELECT cluster_uuid = (SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_state_uuid') FROM mysql.wsrep_cluster_members; + +# Checks for the wsrep_cluster_member_history table + +#disabled SELECT COUNT(*) = 3 FROM mysql.wsrep_cluster_member_history; +#disabled SELECT COUNT(*) = (SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size') FROM mysql.wsrep_cluster_member_history; +SELECT COUNT(*) = 1 FROM mysql.wsrep_cluster_members WHERE node_uuid = (SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_gcomm_uuid'); + +#disabled SELECT last_view_id = (SELECT view_id FROM mysql.wsrep_cluster) FROM mysql.wsrep_cluster_member_history; +#disabled SELECT last_view_seqno = (SELECT view_seqno FROM mysql.wsrep_cluster) FROM mysql.wsrep_cluster_member_history; +#disabled SELECT node_incoming_address LIKE '127.0.0.1:%' from mysql.wsrep_cluster_member_history; +#disabled SELECT cluster_uuid = (SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_state_uuid') FROM mysql.wsrep_cluster_member_history; + +--connection node_2 +--source include/shutdown_mysqld.inc + +--connection node_1 +--source include/wait_until_connected_again.inc + +SELECT cluster_uuid = (SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_state_uuid') FROM mysql.wsrep_cluster; +SELECT COUNT(*) = 2 FROM mysql.wsrep_cluster_members; +#disabled SELECT COUNT(*) = 3 FROM mysql.wsrep_cluster_member_history; +#disabled SELECT COUNT(*) = 2 FROM mysql.wsrep_cluster_member_history WHERE last_view_id = (SELECT MAX(last_view_id) FROM mysql.wsrep_cluster_member_history); + +--connection node_2 +let $restart_noprint=2; +--source include/start_mysqld.inc +--source include/wait_until_connected_again.inc + +SELECT cluster_uuid = (SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_state_uuid') FROM mysql.wsrep_cluster; +SELECT COUNT(*) = 3 FROM mysql.wsrep_cluster_members; +#disabled SELECT COUNT(*) = 3 FROM mysql.wsrep_cluster_member_history WHERE last_view_id = (SELECT MAX(last_view_id) FROM mysql.wsrep_cluster_member_history); + +--connection node_1 +SELECT cluster_uuid = (SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_state_uuid') FROM mysql.wsrep_cluster; +SELECT COUNT(*) = 3 FROM mysql.wsrep_cluster_members; +#disabled SELECT COUNT(*) = 3 FROM mysql.wsrep_cluster_member_history WHERE last_view_id = (SELECT MAX(last_view_id) FROM mysql.wsrep_cluster_member_history); + +--source ../galera/include/auto_increment_offset_restore.inc + +--connection node_1 +CALL mtr.add_suppression("SYNC message from member"); + +--connection node_2 +CALL mtr.add_suppression("SYNC message from member"); + +--connection node_3 +CALL mtr.add_suppression("SYNC message from member"); |