Skip to content

Commit 42908dc

Browse files
committed
MDEV-26171: wsrep_sst_receive_address does not parse IPv6 address correctly
This commit fixes problems with parsing ipv6 addresses given via the wsrep_sst_receive_address and wsrep_node_address options. Also, this commit removes extra lines in the configuration files in the mtr test suites for Galera related to these parameters.
1 parent d31732e commit 42908dc

22 files changed

+555
-123
lines changed

mysql-test/suite/galera/galera_2nodes.cnf

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,18 +7,18 @@ binlog-format=row
77
innodb-autoinc-lock-mode=2
88
default-storage-engine=innodb
99
wsrep-provider=@ENV.WSREP_PROVIDER
10-
wsrep_node_address=127.0.0.1
1110
# enforce read-committed characteristics across the cluster
1211
wsrep-sync-wait=15
12+
wsrep-on=1
1313

1414
[mysqld.1]
1515
loose-innodb
1616
#galera_port=@OPT.port
1717
#ist_port=@OPT.port
1818
#sst_port=@OPT.port
19-
wsrep-on=1
2019
wsrep-cluster-address=gcomm://
2120
wsrep_provider_options='repl.causal_read_timeout=PT90S;base_port=@mysqld.1.#galera_port;evs.suspect_timeout=PT10S;evs.inactive_timeout=PT30S;evs.install_timeout=PT15S;gcache.size=10M'
21+
wsrep_node_address='127.0.0.1:@mysqld.1.#galera_port'
2222
wsrep_node_incoming_address=127.0.0.1:@mysqld.1.port
2323
wsrep_sst_receive_address='127.0.0.1:@mysqld.1.#sst_port'
2424

@@ -31,23 +31,19 @@ loose-innodb
3131
#galera_port=@OPT.port
3232
#ist_port=@OPT.port
3333
#sst_port=@OPT.port
34-
wsrep-on=1
3534
wsrep_cluster_address='gcomm://127.0.0.1:@mysqld.1.#galera_port'
3635
wsrep_provider_options='repl.causal_read_timeout=PT90S;base_port=@mysqld.2.#galera_port;evs.suspect_timeout=PT10S;evs.inactive_timeout=PT30S;evs.install_timeout=PT15S'
36+
wsrep_node_address='127.0.0.1:@mysqld.2.#galera_port'
37+
wsrep_node_incoming_address=127.0.0.1:@mysqld.2.port
38+
wsrep_sst_receive_address='127.0.0.1:@mysqld.2.#sst_port'
3739

3840
# enforce read-committed characteristics across the cluster
3941
wsrep_causal_reads=ON
4042
wsrep_sync_wait = 15
4143

42-
wsrep_node_address=127.0.0.1
43-
wsrep_sst_receive_address=127.0.0.2:@mysqld.2.#sst_port
44-
wsrep_node_incoming_address=127.0.0.1:@mysqld.2.port
45-
wsrep_sst_receive_address='127.0.0.1:@mysqld.2.#sst_port'
46-
4744
[ENV]
4845
NODE_MYPORT_1= @mysqld.1.port
4946
NODE_MYSOCK_1= @mysqld.1.socket
5047

5148
NODE_MYPORT_2= @mysqld.2.port
5249
NODE_MYSOCK_2= @mysqld.2.socket
53-

mysql-test/suite/galera/galera_2nodes_as_master.cnf

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ wsrep-provider=@ENV.WSREP_PROVIDER
2525
wsrep_provider_options='base_port=@mysqld.1.#galera_port;gcache.size=10M'
2626
wsrep_cluster_address=gcomm://
2727
wsrep_sst_receive_address='127.0.0.1:@mysqld.1.#sst_port'
28-
wsrep_node_address=127.0.0.1
28+
wsrep_node_address='127.0.0.1:@mysqld.1.#galera_port'
2929
wsrep_node_incoming_address=127.0.0.1:@mysqld.1.port
3030
# enforce read-committed characteristics across the cluster
3131
wsrep-causal-reads=ON
@@ -44,7 +44,7 @@ wsrep_provider=@ENV.WSREP_PROVIDER
4444
wsrep_provider_options='base_port=@mysqld.2.#galera_port;gcache.size=10M'
4545
wsrep_cluster_address='gcomm://127.0.0.1:@mysqld.1.#galera_port'
4646
wsrep_sst_receive_address='127.0.0.1:@mysqld.2.#sst_port'
47-
wsrep_node_address=127.0.0.1
47+
wsrep_node_address='127.0.0.1:@mysqld.2.#galera_port'
4848
wsrep_node_incoming_address=127.0.0.1:@mysqld.2.port
4949
# enforce read-committed characteristics across the cluster
5050
wsrep-causal-reads=ON
@@ -62,9 +62,3 @@ NODE_MYSOCK_2= @mysqld.2.socket
6262

6363
NODE_MYPORT_3= @mysqld.3.port
6464
NODE_MYSOCK_3= @mysqld.3.socket
65-
66-
NODE_GALERAPORT_1= @mysqld.1.#galera_port
67-
NODE_GALERAPORT_2= @mysqld.2.#galera_port
68-
69-
NODE_SSTPORT_1= @mysqld.1.#sst_port
70-
NODE_SSTPORT_2= @mysqld.2.#sst_port

mysql-test/suite/galera/galera_2nodes_as_slave.cnf

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,9 @@ log-slave-updates
2525
innodb-autoinc-lock-mode=2
2626
default-storage-engine=innodb
2727
wsrep-provider=@ENV.WSREP_PROVIDER
28-
wsrep_node_address=127.0.0.1
2928
wsrep-cluster-address=gcomm://
3029
wsrep_provider_options='base_port=@mysqld.2.#galera_port;gcache.size=10M'
30+
wsrep_node_address='127.0.0.1:@mysqld.2.#galera_port'
3131
wsrep_node_incoming_address=127.0.0.1:@mysqld.2.port
3232
wsrep_sst_receive_address='127.0.0.1:@mysqld.2.#sst_port'
3333

@@ -49,9 +49,9 @@ log-slave-updates
4949
innodb-autoinc-lock-mode=2
5050
default-storage-engine=innodb
5151
wsrep-provider=@ENV.WSREP_PROVIDER
52-
wsrep_node_address=127.0.0.1
5352
wsrep_cluster_address='gcomm://127.0.0.1:@mysqld.2.#galera_port'
5453
wsrep_provider_options='base_port=@mysqld.3.#galera_port;gcache.size=10M'
54+
wsrep_node_address='127.0.0.1:@mysqld.3.#galera_port'
5555
wsrep_node_incoming_address=127.0.0.1:@mysqld.3.port
5656
wsrep_sst_receive_address='127.0.0.1:@mysqld.3.#sst_port'
5757

@@ -69,9 +69,3 @@ NODE_MYSOCK_2= @mysqld.2.socket
6969

7070
NODE_MYPORT_3= @mysqld.3.port
7171
NODE_MYSOCK_3= @mysqld.3.socket
72-
73-
NODE_GALERAPORT_2= @mysqld.2.#galera_port
74-
NODE_GALERAPORT_3= @mysqld.3.#galera_port
75-
76-
NODE_SSTPORT_2= @mysqld.2.#sst_port
77-
NODE_SSTPORT_3= @mysqld.3.#sst_port

mysql-test/suite/galera/galera_3nodes_as_slave.cnf

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,9 @@ wsrep-on=1
2323
innodb-autoinc-lock-mode=2
2424
default-storage-engine=innodb
2525
wsrep-provider=@ENV.WSREP_PROVIDER
26-
wsrep_node_address=127.0.0.1
2726
wsrep-cluster-address=gcomm://
2827
wsrep_provider_options='base_port=@mysqld.2.#galera_port;evs.install_timeout = PT15S;evs.max_install_timeouts=1;gcache.size=10M'
28+
wsrep_node_address='127.0.0.1:@mysqld.2.#galera_port'
2929
wsrep_node_incoming_address=127.0.0.1:@mysqld.2.port
3030
wsrep_sst_receive_address='127.0.0.1:@mysqld.2.#sst_port'
3131

@@ -45,9 +45,9 @@ wsrep-on=1
4545
innodb-autoinc-lock-mode=2
4646
default-storage-engine=innodb
4747
wsrep-provider=@ENV.WSREP_PROVIDER
48-
wsrep_node_address=127.0.0.1
4948
wsrep_cluster_address='gcomm://127.0.0.1:@mysqld.2.#galera_port'
5049
wsrep_provider_options='base_port=@mysqld.3.#galera_port;evs.install_timeout=PT15S;evs.max_install_timeouts=1;gcache.size=10M'
50+
wsrep_node_address='127.0.0.1:@mysqld.3.#galera_port'
5151
wsrep_node_incoming_address=127.0.0.1:@mysqld.3.port
5252
wsrep_sst_receive_address='127.0.0.1:@mysqld.3.#sst_port'
5353

@@ -67,9 +67,9 @@ wsrep-on=1
6767
innodb-autoinc-lock-mode=2
6868
default-storage-engine=innodb
6969
wsrep-provider=@ENV.WSREP_PROVIDER
70-
wsrep_node_address=127.0.0.1
7170
wsrep_cluster_address='gcomm://127.0.0.1:@mysqld.2.#galera_port'
7271
wsrep_provider_options='base_port=@mysqld.4.#galera_port;evs.install_timeout=PT15S;evs.max_install_timeouts=1;gcache.size=10M'
72+
wsrep_node_address='127.0.0.1:@mysqld.4.#galera_port'
7373
wsrep_node_incoming_address=127.0.0.1:@mysqld.4.port
7474
wsrep_sst_receive_address='127.0.0.1:@mysqld.4.#sst_port'
7575

@@ -90,11 +90,3 @@ NODE_MYSOCK_3= @mysqld.3.socket
9090

9191
NODE_MYPORT_4= @mysqld.4.port
9292
NODE_MYSOCK_4= @mysqld.4.socket
93-
94-
NODE_GALERAPORT_2= @mysqld.2.#galera_port
95-
NODE_GALERAPORT_3= @mysqld.3.#galera_port
96-
NODE_GALERAPORT_4= @mysqld.4.#galera_port
97-
98-
NODE_SSTPORT_2= @mysqld.2.#sst_port
99-
NODE_SSTPORT_3= @mysqld.3.#sst_port
100-
NODE_SSTPORT_4= @mysqld.4.#sst_port

mysql-test/suite/galera/galera_4nodes.cnf

Lines changed: 4 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ innodb-autoinc-lock-mode=2
77
default-storage-engine=innodb
88
wsrep-on=1
99
wsrep-provider=@ENV.WSREP_PROVIDER
10-
wsrep_node_address=127.0.0.1
1110
# enforce read-committed characteristics across the cluster
1211
wsrep-causal-reads=ON
1312
wsrep-sync-wait=15
@@ -16,41 +15,39 @@ wsrep-sync-wait=15
1615
#galera_port=@OPT.port
1716
#ist_port=@OPT.port
1817
#sst_port=@OPT.port
19-
wsrep-on=1
2018
wsrep-cluster-address=gcomm://
2119
wsrep_provider_options='base_port=@mysqld.1.#galera_port;gcache.size=10M'
20+
wsrep_node_address='127.0.0.1:@mysqld.1.#galera_port'
2221
wsrep_node_incoming_address=127.0.0.1:@mysqld.1.port
2322
wsrep_sst_receive_address='127.0.0.1:@mysqld.1.#sst_port'
2423

2524
[mysqld.2]
2625
#galera_port=@OPT.port
2726
#ist_port=@OPT.port
2827
#sst_port=@OPT.port
29-
wsrep-on=1
3028
wsrep_cluster_address='gcomm://127.0.0.1:@mysqld.1.#galera_port'
3129
wsrep_provider_options='base_port=@mysqld.2.#galera_port;gcache.size=10M'
30+
wsrep_node_address='127.0.0.1:@mysqld.2.#galera_port'
3231
wsrep_node_incoming_address=127.0.0.1:@mysqld.2.port
3332
wsrep_sst_receive_address='127.0.0.1:@mysqld.2.#sst_port'
3433

35-
3634
[mysqld.3]
3735
#galera_port=@OPT.port
3836
#ist_port=@OPT.port
3937
#sst_port=@OPT.port
40-
wsrep-on=1
4138
wsrep_cluster_address='gcomm://127.0.0.1:@mysqld.1.#galera_port'
4239
wsrep_provider_options='base_port=@mysqld.3.#galera_port;gcache.size=10M'
40+
wsrep_node_address='127.0.0.1:@mysqld.3.#galera_port'
4341
wsrep_node_incoming_address=127.0.0.1:@mysqld.3.port
4442
wsrep_sst_receive_address='127.0.0.1:@mysqld.3.#sst_port'
4543

46-
4744
[mysqld.4]
4845
#galera_port=@OPT.port
4946
#ist_port=@OPT.port
5047
#sst_port=@OPT.port
51-
wsrep-on=1
5248
wsrep_cluster_address='gcomm://127.0.0.1:@mysqld.1.#galera_port'
5349
wsrep_provider_options='base_port=@mysqld.4.#galera_port;gcache.size=10M'
50+
wsrep_node_address='127.0.0.1:@mysqld.4.#galera_port'
5451
wsrep_node_incoming_address=127.0.0.1:@mysqld.4.port
5552
wsrep_sst_receive_address='127.0.0.1:@mysqld.4.#sst_port'
5653

@@ -66,13 +63,3 @@ NODE_MYSOCK_3= @mysqld.3.socket
6663

6764
NODE_MYPORT_4= @mysqld.4.port
6865
NODE_MYSOCK_4= @mysqld.4.socket
69-
70-
NODE_GALERAPORT_1= @mysqld.1.#galera_port
71-
NODE_GALERAPORT_2= @mysqld.2.#galera_port
72-
NODE_GALERAPORT_3= @mysqld.3.#galera_port
73-
NODE_GALERAPORT_4= @mysqld.4.#galera_port
74-
75-
NODE_SSTPORT_1= @mysqld.1.#sst_port
76-
NODE_SSTPORT_2= @mysqld.2.#sst_port
77-
NODE_SSTPORT_3= @mysqld.3.#sst_port
78-
NODE_SSTPORT_4= @mysqld.4.#sst_port

mysql-test/suite/galera/r/galera_sst_mariabackup_logarchive,debug.rdiff

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
--- r/galera_sst_mariabackup_logarachive.result
2-
+++ r/galera_sst_mariabackup_logarachive.reject
1+
--- r/galera_sst_mariabackup_logarchive.result
2+
+++ r/galera_sst_mariabackup_logarchive.reject
33
@@ -286,5 +286,113 @@
44
DROP TABLE t1;
55
COMMIT;
Lines changed: 114 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
1+
--- galera_sst_rsync_recv_auto.result
2+
+++ galera_sst_rsync_recv_auto.reject
3+
@@ -286,3 +286,111 @@
4+
DROP TABLE t1;
5+
COMMIT;
6+
SET AUTOCOMMIT=ON;
7+
+Performing State Transfer on a server that has been killed and restarted
8+
+while a DDL was in progress on it
9+
+connection node_1;
10+
+CREATE TABLE t1 (f1 CHAR(255)) ENGINE=InnoDB;
11+
+SET AUTOCOMMIT=OFF;
12+
+START TRANSACTION;
13+
+INSERT INTO t1 VALUES ('node1_committed_before');
14+
+INSERT INTO t1 VALUES ('node1_committed_before');
15+
+INSERT INTO t1 VALUES ('node1_committed_before');
16+
+INSERT INTO t1 VALUES ('node1_committed_before');
17+
+INSERT INTO t1 VALUES ('node1_committed_before');
18+
+connection node_2;
19+
+START TRANSACTION;
20+
+INSERT INTO t1 VALUES ('node2_committed_before');
21+
+INSERT INTO t1 VALUES ('node2_committed_before');
22+
+INSERT INTO t1 VALUES ('node2_committed_before');
23+
+INSERT INTO t1 VALUES ('node2_committed_before');
24+
+INSERT INTO t1 VALUES ('node2_committed_before');
25+
+COMMIT;
26+
+SET GLOBAL debug_dbug = 'd,sync.alter_opened_table';
27+
+connection node_1;
28+
+ALTER TABLE t1 ADD COLUMN f2 INTEGER;
29+
+connection node_2;
30+
+SET wsrep_sync_wait = 0;
31+
+Killing server ...
32+
+connection node_1;
33+
+SET AUTOCOMMIT=OFF;
34+
+START TRANSACTION;
35+
+INSERT INTO t1 (f1) VALUES ('node1_committed_during');
36+
+INSERT INTO t1 (f1) VALUES ('node1_committed_during');
37+
+INSERT INTO t1 (f1) VALUES ('node1_committed_during');
38+
+INSERT INTO t1 (f1) VALUES ('node1_committed_during');
39+
+INSERT INTO t1 (f1) VALUES ('node1_committed_during');
40+
+COMMIT;
41+
+START TRANSACTION;
42+
+INSERT INTO t1 (f1) VALUES ('node1_to_be_committed_after');
43+
+INSERT INTO t1 (f1) VALUES ('node1_to_be_committed_after');
44+
+INSERT INTO t1 (f1) VALUES ('node1_to_be_committed_after');
45+
+INSERT INTO t1 (f1) VALUES ('node1_to_be_committed_after');
46+
+INSERT INTO t1 (f1) VALUES ('node1_to_be_committed_after');
47+
+connect node_1a_galera_st_kill_slave_ddl, 127.0.0.1, root, , test, $NODE_MYPORT_1;
48+
+SET AUTOCOMMIT=OFF;
49+
+START TRANSACTION;
50+
+INSERT INTO t1 (f1) VALUES ('node1_to_be_rollbacked_after');
51+
+INSERT INTO t1 (f1) VALUES ('node1_to_be_rollbacked_after');
52+
+INSERT INTO t1 (f1) VALUES ('node1_to_be_rollbacked_after');
53+
+INSERT INTO t1 (f1) VALUES ('node1_to_be_rollbacked_after');
54+
+INSERT INTO t1 (f1) VALUES ('node1_to_be_rollbacked_after');
55+
+connection node_2;
56+
+Performing --wsrep-recover ...
57+
+connection node_2;
58+
+Starting server ...
59+
+Using --wsrep-start-position when starting mysqld ...
60+
+SET AUTOCOMMIT=OFF;
61+
+START TRANSACTION;
62+
+INSERT INTO t1 (f1) VALUES ('node2_committed_after');
63+
+INSERT INTO t1 (f1) VALUES ('node2_committed_after');
64+
+INSERT INTO t1 (f1) VALUES ('node2_committed_after');
65+
+INSERT INTO t1 (f1) VALUES ('node2_committed_after');
66+
+INSERT INTO t1 (f1) VALUES ('node2_committed_after');
67+
+COMMIT;
68+
+connection node_1;
69+
+INSERT INTO t1 (f1) VALUES ('node1_to_be_committed_after');
70+
+INSERT INTO t1 (f1) VALUES ('node1_to_be_committed_after');
71+
+INSERT INTO t1 (f1) VALUES ('node1_to_be_committed_after');
72+
+INSERT INTO t1 (f1) VALUES ('node1_to_be_committed_after');
73+
+INSERT INTO t1 (f1) VALUES ('node1_to_be_committed_after');
74+
+COMMIT;
75+
+SET AUTOCOMMIT=OFF;
76+
+START TRANSACTION;
77+
+INSERT INTO t1 (f1) VALUES ('node1_committed_after');
78+
+INSERT INTO t1 (f1) VALUES ('node1_committed_after');
79+
+INSERT INTO t1 (f1) VALUES ('node1_committed_after');
80+
+INSERT INTO t1 (f1) VALUES ('node1_committed_after');
81+
+INSERT INTO t1 (f1) VALUES ('node1_committed_after');
82+
+COMMIT;
83+
+connection node_1a_galera_st_kill_slave_ddl;
84+
+INSERT INTO t1 (f1) VALUES ('node1_to_be_rollbacked_after');
85+
+INSERT INTO t1 (f1) VALUES ('node1_to_be_rollbacked_after');
86+
+INSERT INTO t1 (f1) VALUES ('node1_to_be_rollbacked_after');
87+
+INSERT INTO t1 (f1) VALUES ('node1_to_be_rollbacked_after');
88+
+INSERT INTO t1 (f1) VALUES ('node1_to_be_rollbacked_after');
89+
+ROLLBACK;
90+
+SELECT COUNT(*) = 2 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 't1';
91+
+COUNT(*) = 2
92+
+1
93+
+SELECT COUNT(*) = 35 FROM t1;
94+
+COUNT(*) = 35
95+
+1
96+
+SELECT COUNT(*) = 0 FROM (SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 HAVING c NOT IN (5, 10)) AS a1;
97+
+COUNT(*) = 0
98+
+1
99+
+COMMIT;
100+
+SET AUTOCOMMIT=ON;
101+
+connection node_1;
102+
+SELECT COUNT(*) = 2 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 't1';
103+
+COUNT(*) = 2
104+
+1
105+
+SELECT COUNT(*) = 35 FROM t1;
106+
+COUNT(*) = 35
107+
+1
108+
+SELECT COUNT(*) = 0 FROM (SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 HAVING c NOT IN (5, 10)) AS a1;
109+
+COUNT(*) = 0
110+
+1
111+
+DROP TABLE t1;
112+
+COMMIT;
113+
+SET AUTOCOMMIT=ON;
114+
+SET GLOBAL debug_dbug = $debug_orig;

0 commit comments

Comments
 (0)