summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mysql-test/suite/galera/include/galera_sst_set_mysqldump.inc5
-rw-r--r--mysql-test/suite/galera/r/galera_sst_mysqldump.result5
-rw-r--r--mysql-test/suite/galera/t/galera_sst_mysqldump.test1
-rw-r--r--mysql-test/suite/sys_vars/r/wsrep_sst_receive_address_basic.result4
-rw-r--r--mysql-test/suite/sys_vars/t/wsrep_sst_receive_address_basic.test4
-rw-r--r--scripts/wsrep_sst_mysqldump.sh4
-rw-r--r--sql/wsrep_check_opts.cc3
-rw-r--r--sql/wsrep_mysqld.cc2
-rw-r--r--sql/wsrep_sst.cc23
9 files changed, 12 insertions, 39 deletions
diff --git a/mysql-test/suite/galera/include/galera_sst_set_mysqldump.inc b/mysql-test/suite/galera/include/galera_sst_set_mysqldump.inc
index cbd2c1c817a..16af5742b9b 100644
--- a/mysql-test/suite/galera/include/galera_sst_set_mysqldump.inc
+++ b/mysql-test/suite/galera/include/galera_sst_set_mysqldump.inc
@@ -4,6 +4,9 @@
--echo Setting SST method to mysqldump ...
+call mtr.add_suppression("WSREP: wsrep_sst_method is set to 'mysqldump' yet mysqld bind_address is set to '127.0.0.1'");
+call mtr.add_suppression("Failed to load slave replication state from table mysql.gtid_slave_pos");
+
--connection node_1
# We need a user with a password to perform SST, otherwise we hit LP #1378253
CREATE USER 'sst';
@@ -19,6 +22,6 @@ SET GLOBAL wsrep_sst_auth = 'sst:';
--disable_query_log
# Set wsrep_sst_receive_address to the SQL port
---eval SET GLOBAL wsrep_sst_receive_address = '127.0.0.2:$NODE_MYPORT_2';
+--eval SET GLOBAL wsrep_sst_receive_address = '127.0.0.1:$NODE_MYPORT_2';
--enable_query_log
SET GLOBAL wsrep_sst_method = 'mysqldump';
diff --git a/mysql-test/suite/galera/r/galera_sst_mysqldump.result b/mysql-test/suite/galera/r/galera_sst_mysqldump.result
index 5c0d9a45d41..aeada721adc 100644
--- a/mysql-test/suite/galera/r/galera_sst_mysqldump.result
+++ b/mysql-test/suite/galera/r/galera_sst_mysqldump.result
@@ -1,4 +1,6 @@
Setting SST method to mysqldump ...
+call mtr.add_suppression("WSREP: wsrep_sst_method is set to 'mysqldump' yet mysqld bind_address is set to '127.0.0.1'");
+call mtr.add_suppression("Failed to load slave replication state from table mysql.gtid_slave_pos");
CREATE USER 'sst';
GRANT ALL PRIVILEGES ON *.* TO 'sst';
SET GLOBAL wsrep_sst_auth = 'sst:';
@@ -369,7 +371,7 @@ INSERT INTO t1 VALUES ('node2_committed_before');
INSERT INTO t1 VALUES ('node2_committed_before');
INSERT INTO t1 VALUES ('node2_committed_before');
COMMIT;
-SET GLOBAL debug = 'd,sync.alter_opened_table';
+SET GLOBAL debug_dbug = 'd,sync.alter_opened_table';
ALTER TABLE t1 ADD COLUMN f2 INTEGER;
SET wsrep_sync_wait = 0;
Killing server ...
@@ -448,6 +450,7 @@ COUNT(*) = 0
DROP TABLE t1;
COMMIT;
SET AUTOCOMMIT=ON;
+SET GLOBAL debug_dbug = $debug_orig;
CALL mtr.add_suppression("Slave SQL: Error 'The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement' on query");
DROP USER sst;
CALL mtr.add_suppression("Slave SQL: Error 'The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement' on query");
diff --git a/mysql-test/suite/galera/t/galera_sst_mysqldump.test b/mysql-test/suite/galera/t/galera_sst_mysqldump.test
index 0b7171597dd..ce112c57745 100644
--- a/mysql-test/suite/galera/t/galera_sst_mysqldump.test
+++ b/mysql-test/suite/galera/t/galera_sst_mysqldump.test
@@ -1,4 +1,3 @@
---source include/big_test.inc
--source include/galera_cluster.inc
--source include/have_innodb.inc
diff --git a/mysql-test/suite/sys_vars/r/wsrep_sst_receive_address_basic.result b/mysql-test/suite/sys_vars/r/wsrep_sst_receive_address_basic.result
index 6db52eb8150..3e1fb6cad79 100644
--- a/mysql-test/suite/sys_vars/r/wsrep_sst_receive_address_basic.result
+++ b/mysql-test/suite/sys_vars/r/wsrep_sst_receive_address_basic.result
@@ -30,10 +30,6 @@ SELECT @@global.wsrep_sst_receive_address;
192.168.2.254
# invalid values
-SET @@global.wsrep_sst_receive_address='127.0.0.1:4444';
-ERROR 42000: Variable 'wsrep_sst_receive_address' can't be set to the value of '127.0.0.1:4444'
-SET @@global.wsrep_sst_receive_address='127.0.0.1';
-ERROR 42000: Variable 'wsrep_sst_receive_address' can't be set to the value of '127.0.0.1'
SELECT @@global.wsrep_sst_receive_address;
@@global.wsrep_sst_receive_address
192.168.2.254
diff --git a/mysql-test/suite/sys_vars/t/wsrep_sst_receive_address_basic.test b/mysql-test/suite/sys_vars/t/wsrep_sst_receive_address_basic.test
index 9e50cbf8947..59f69c14dfb 100644
--- a/mysql-test/suite/sys_vars/t/wsrep_sst_receive_address_basic.test
+++ b/mysql-test/suite/sys_vars/t/wsrep_sst_receive_address_basic.test
@@ -27,10 +27,6 @@ SELECT @@global.wsrep_sst_receive_address;
--echo
--echo # invalid values
---error ER_WRONG_VALUE_FOR_VAR
-SET @@global.wsrep_sst_receive_address='127.0.0.1:4444';
---error ER_WRONG_VALUE_FOR_VAR
-SET @@global.wsrep_sst_receive_address='127.0.0.1';
SELECT @@global.wsrep_sst_receive_address;
--error ER_WRONG_VALUE_FOR_VAR
SET @@global.wsrep_sst_receive_address=NULL;
diff --git a/scripts/wsrep_sst_mysqldump.sh b/scripts/wsrep_sst_mysqldump.sh
index 358247359e6..46edefd4829 100644
--- a/scripts/wsrep_sst_mysqldump.sh
+++ b/scripts/wsrep_sst_mysqldump.sh
@@ -119,11 +119,11 @@ MYSQL="$MYSQL_CLIENT $WSREP_SST_OPT_CONF "\
# Check if binary logging is enabled on the joiner node.
# Note: SELECT cannot be used at this point.
-LOG_BIN=$(echo "SHOW VARIABLES LIKE 'log_bin'" | $MYSQL |\
+LOG_BIN=$(echo "set statement wsrep_sync_wait=0 for SHOW VARIABLES LIKE 'log_bin'" | $MYSQL |\
tail -1 | awk -F ' ' '{ print $2 }')
# Check the joiner node's server version.
-SERVER_VERSION=$(echo "SHOW VARIABLES LIKE 'version'" | $MYSQL |\
+SERVER_VERSION=$(echo "set statement wsrep_sync_wait=0 for SHOW VARIABLES LIKE 'version'" | $MYSQL |\
tail -1 | awk -F ' ' '{ print $2 }')
RESET_MASTER=""
diff --git a/sql/wsrep_check_opts.cc b/sql/wsrep_check_opts.cc
index 690c1a4b2a4..28bd3a4492b 100644
--- a/sql/wsrep_check_opts.cc
+++ b/sql/wsrep_check_opts.cc
@@ -51,7 +51,7 @@ int wsrep_check_opts()
(!strcasecmp(my_bind_addr_str, "127.0.0.1") ||
!strcasecmp(my_bind_addr_str, "localhost")))
{
- WSREP_ERROR("wsrep_sst_method is set to 'mysqldump' yet "
+ WSREP_WARN("wsrep_sst_method is set to 'mysqldump' yet "
"mysqld bind_address is set to '%s', which makes it "
"impossible to receive state transfer from another "
"node, since mysqld won't accept such connections. "
@@ -59,7 +59,6 @@ int wsrep_check_opts()
"set bind_address to allow mysql client connections "
"from other cluster members (e.g. 0.0.0.0).",
my_bind_addr_str);
- return 1;
}
}
else
diff --git a/sql/wsrep_mysqld.cc b/sql/wsrep_mysqld.cc
index 9d4037082bc..f5ce14aed6a 100644
--- a/sql/wsrep_mysqld.cc
+++ b/sql/wsrep_mysqld.cc
@@ -369,7 +369,7 @@ wsrep_view_handler_cb (void* app_ctx,
if (!wsrep_before_SE())
{
WSREP_DEBUG("[debug]: closing client connections for PRIM");
- wsrep_close_client_connections(TRUE);
+ wsrep_close_client_connections(FALSE);
}
ssize_t const req_len= wsrep_sst_prepare (sst_req);
diff --git a/sql/wsrep_sst.cc b/sql/wsrep_sst.cc
index 8db100f3dc1..260755d08a8 100644
--- a/sql/wsrep_sst.cc
+++ b/sql/wsrep_sst.cc
@@ -85,37 +85,14 @@ static void make_wsrep_defaults_file()
}
-// TODO: Improve address verification.
-static bool sst_receive_address_check (const char* str)
-{
- if (!strncasecmp(str, "127.0.0.1", strlen("127.0.0.1")) ||
- !strncasecmp(str, "localhost", strlen("localhost")))
- {
- return 1;
- }
-
- return 0;
-}
-
bool wsrep_sst_receive_address_check (sys_var *self, THD* thd, set_var* var)
{
- char addr_buf[FN_REFLEN];
-
if ((! var->save_result.string_value.str) ||
(var->save_result.string_value.length > (FN_REFLEN - 1))) // safety
{
goto err;
}
- memcpy(addr_buf, var->save_result.string_value.str,
- var->save_result.string_value.length);
- addr_buf[var->save_result.string_value.length]= 0;
-
- if (sst_receive_address_check(addr_buf))
- {
- goto err;
- }
-
return 0;
err: