33 changed files with 428 additions and 212 deletions
-
8CMakeLists.txt
-
4cmake/os/Linux.cmake
-
4cmake/plugin.cmake
-
4mysql-test/suite/galera/disabled.def
-
2mysql-test/suite/galera/r/galera_kill_nochanges.result
-
28mysql-test/suite/galera/r/galera_many_rows.result
-
2mysql-test/suite/galera/r/galera_var_dirty_reads.result
-
1mysql-test/suite/galera/r/galera_var_notify_cmd.result
-
10mysql-test/suite/galera/t/galera_autoinc_sst_mariabackup.test
-
9mysql-test/suite/galera/t/galera_kill_nochanges.test
-
5mysql-test/suite/galera/t/galera_many_rows.cnf
-
19mysql-test/suite/galera/t/galera_many_rows.test
-
5mysql-test/suite/galera/t/galera_var_dirty_reads.test
-
18mysql-test/suite/galera_3nodes/r/galera_ipv6_mariabackup_section.result
-
14mysql-test/suite/galera_3nodes/r/galera_ipv6_rsync_section.result
-
39mysql-test/suite/galera_3nodes/t/galera_ipv6_mariabackup_section.cnf
-
1mysql-test/suite/galera_3nodes/t/galera_ipv6_mariabackup_section.opt
-
69mysql-test/suite/galera_3nodes/t/galera_ipv6_mariabackup_section.test
-
31mysql-test/suite/galera_3nodes/t/galera_ipv6_rsync_section.cnf
-
1mysql-test/suite/galera_3nodes/t/galera_ipv6_rsync_section.opt
-
32mysql-test/suite/galera_3nodes/t/galera_ipv6_rsync_section.test
-
2mysql-test/suite/innodb/include/wait_all_purged.inc
-
2scripts/wsrep_sst_common.sh
-
24scripts/wsrep_sst_mariabackup.sh
-
5scripts/wsrep_sst_rsync.sh
-
35storage/innobase/include/que0que.h
-
39storage/innobase/include/que0types.h
-
21storage/innobase/include/row0import.h
-
77storage/innobase/include/row0purge.h
-
30storage/innobase/row/row0import.cc
-
2storage/innobase/row/row0mysql.cc
-
76storage/innobase/row/row0purge.cc
-
21storage/innobase/trx/trx0purge.cc
@ -0,0 +1,5 @@ |
|||
!include ../galera_2nodes.cnf |
|||
|
|||
[mysqld] |
|||
innodb-status-output=ON |
|||
innodb-status-output-locks=ON |
|||
@ -0,0 +1,18 @@ |
|||
SELECT VARIABLE_VALUE LIKE '%[::1]%' FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_incoming_addresses'; |
|||
VARIABLE_VALUE LIKE '%[::1]%' |
|||
1 |
|||
SELECT VARIABLE_VALUE = 3 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size'; |
|||
VARIABLE_VALUE = 3 |
|||
1 |
|||
SET GLOBAL wsrep_provider_options='gmcast.isolate=1'; |
|||
CREATE TABLE t1 (f1 INTEGER) ENGINE=InnoDB; |
|||
INSERT INTO t1 VALUES (1); |
|||
SET GLOBAL wsrep_provider_options='gmcast.isolate=0'; |
|||
SELECT COUNT(*) = 1 FROM t1; |
|||
COUNT(*) = 1 |
|||
1 |
|||
DROP TABLE t1; |
|||
include/assert_grep.inc [Streaming the backup to joiner at \[::1\]] |
|||
include/assert_grep.inc [async IST sender starting to serve tcp://\[::1\]:] |
|||
include/assert_grep.inc [IST receiver addr using tcp://\[::1\]] |
|||
include/assert_grep.inc [Prepared IST receiver, listening at: tcp://\[::1\]] |
|||
@ -0,0 +1,14 @@ |
|||
SELECT VARIABLE_VALUE LIKE '%[::1]%' FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_incoming_addresses'; |
|||
VARIABLE_VALUE LIKE '%[::1]%' |
|||
1 |
|||
SELECT VARIABLE_VALUE = 3 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size'; |
|||
VARIABLE_VALUE = 3 |
|||
1 |
|||
SET GLOBAL wsrep_provider_options='gmcast.isolate=1'; |
|||
CREATE TABLE t1 (f1 INTEGER) ENGINE=InnoDB; |
|||
INSERT INTO t1 VALUES (1); |
|||
SET GLOBAL wsrep_provider_options='gmcast.isolate=0'; |
|||
SELECT COUNT(*) = 1 FROM t1; |
|||
COUNT(*) = 1 |
|||
1 |
|||
DROP TABLE t1; |
|||
@ -0,0 +1,39 @@ |
|||
!include ../galera_3nodes.cnf |
|||
|
|||
# decoy value - should not be read by mysqld or sst scripts |
|||
[mysqld] |
|||
innodb-data-home-dir=/tmp |
|||
|
|||
[galera] |
|||
innodb-data-home-dir= |
|||
wsrep_sst_method=mariabackup |
|||
wsrep_sst_auth="root:" |
|||
wsrep_node_address=::1 |
|||
|
|||
[galera.1] |
|||
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 |
|||
|
|||
[galera.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 |
|||
|
|||
[galera.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 |
|||
streamfmt=xbstream |
|||
sockopt=",pf=ip6" |
|||
@ -0,0 +1 @@ |
|||
--bind-address=:: |
|||
@ -0,0 +1,69 @@ |
|||
--source include/galera_cluster.inc |
|||
--source include/check_ipv6.inc |
|||
--source suite/galera/include/have_mariabackup.inc |
|||
|
|||
# Confirm that initial handshake happened over ipv6 |
|||
|
|||
SELECT VARIABLE_VALUE LIKE '%[::1]%' FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_incoming_addresses'; |
|||
SELECT VARIABLE_VALUE = 3 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size'; |
|||
|
|||
# Force IST |
|||
|
|||
--connection node_2 |
|||
SET GLOBAL wsrep_provider_options='gmcast.isolate=1'; |
|||
|
|||
--connection node_1 |
|||
--let $wait_condition = SELECT VARIABLE_VALUE = 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size'; |
|||
--source include/wait_condition.inc |
|||
|
|||
CREATE TABLE t1 (f1 INTEGER) ENGINE=InnoDB; |
|||
INSERT INTO t1 VALUES (1); |
|||
|
|||
--connection node_2 |
|||
SET GLOBAL wsrep_provider_options='gmcast.isolate=0'; |
|||
|
|||
--let $wait_condition = SELECT VARIABLE_VALUE = 3 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size'; |
|||
--source include/wait_condition.inc |
|||
|
|||
--let $wait_condition = SELECT VARIABLE_VALUE = 'ON' FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_ready'; |
|||
--source include/wait_condition.inc |
|||
|
|||
SELECT COUNT(*) = 1 FROM t1; |
|||
|
|||
DROP TABLE t1; |
|||
|
|||
# Confirm that key messages around SST and IST reference IPv6 |
|||
|
|||
--connection node_1 |
|||
--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 |
|||
|
|||
# There will be 1 ISTs donated from node_1 in Galera 3. |
|||
# 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_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 |
|||
|
|||
--connection node_2 |
|||
--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 |
|||
--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\] |
|||
--source include/assert_grep.inc |
|||
@ -0,0 +1,31 @@ |
|||
!include ../galera_3nodes.cnf |
|||
|
|||
# decoy value - should not be read by mysqld or sst scripts |
|||
[mysqld] |
|||
innodb-data-home-dir=/tmp |
|||
|
|||
[mariadb] |
|||
innodb-data-home-dir= |
|||
wsrep_sst_method=rsync |
|||
wsrep_node_address=::1 |
|||
|
|||
[mariadb.1] |
|||
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' |
|||
|
|||
[mariadb.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' |
|||
|
|||
[mariadb.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' |
|||
|
|||
[SST] |
|||
sockopt=",pf=ip6" |
|||
@ -0,0 +1 @@ |
|||
--bind-address=:: |
|||
@ -0,0 +1,32 @@ |
|||
--source include/galera_cluster.inc |
|||
--source include/check_ipv6.inc |
|||
|
|||
# Confirm that initial handshake happened over ipv6 |
|||
|
|||
SELECT VARIABLE_VALUE LIKE '%[::1]%' FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_incoming_addresses'; |
|||
SELECT VARIABLE_VALUE = 3 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size'; |
|||
|
|||
# Force IST |
|||
|
|||
--connection node_2 |
|||
SET GLOBAL wsrep_provider_options='gmcast.isolate=1'; |
|||
|
|||
--connection node_1 |
|||
--let $wait_condition = SELECT VARIABLE_VALUE = 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size'; |
|||
--source include/wait_condition.inc |
|||
|
|||
CREATE TABLE t1 (f1 INTEGER) ENGINE=InnoDB; |
|||
INSERT INTO t1 VALUES (1); |
|||
|
|||
--connection node_2 |
|||
SET GLOBAL wsrep_provider_options='gmcast.isolate=0'; |
|||
|
|||
--let $wait_condition = SELECT VARIABLE_VALUE = 3 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size'; |
|||
--source include/wait_condition.inc |
|||
|
|||
--let $wait_condition = SELECT VARIABLE_VALUE = 'ON' FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_ready'; |
|||
--source include/wait_condition.inc |
|||
|
|||
SELECT COUNT(*) = 1 FROM t1; |
|||
|
|||
DROP TABLE t1; |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue