diff options
-rwxr-xr-x | mysql-test/std_data/wsrep_notify.sh | 57 | ||||
-rwxr-xr-x | mysql-test/std_data/wsrep_notify_ssl.sh | 51 | ||||
-rw-r--r-- | mysql-test/suite/galera/r/galera_wsrep_new_cluster.result | 12 | ||||
-rw-r--r-- | mysql-test/suite/galera/t/galera_var_notify_ssl_ipv6.cnf | 8 | ||||
-rw-r--r-- | mysql-test/suite/galera/t/galera_wsrep_new_cluster-master.opt | 1 | ||||
-rw-r--r-- | mysql-test/suite/galera/t/galera_wsrep_new_cluster.test | 54 | ||||
-rwxr-xr-x | support-files/wsrep_notify.sh | 66 |
7 files changed, 161 insertions, 88 deletions
diff --git a/mysql-test/std_data/wsrep_notify.sh b/mysql-test/std_data/wsrep_notify.sh index 5dfd63462b9..6fd8acdaf9c 100755 --- a/mysql-test/std_data/wsrep_notify.sh +++ b/mysql-test/std_data/wsrep_notify.sh @@ -6,30 +6,32 @@ # # Edit parameters below to specify the address and login to server: # -USER=root -PSWD= +USER='root' +PSWD='' # # If these parameters are not set, then the values # passed by the server are taken: # -HOST=127.0.0.1 +HOST="127.0.0.1" PORT=$NODE_MYPORT_1 # # Edit parameters below to specify SSL parameters: # -ssl_key= -ssl_cert= -ssl_ca= -ssl_capath= -ssl_cipher= -ssl_crl= -ssl_crlpath= +ssl_cert="" +ssl_key="" +ssl_ca="" +ssl_capath="" +ssl_cipher="" +ssl_crl="" +ssl_crlpath="" ssl_verify_server_cert=0 # # Client executable path: # CLIENT="$EXE_MYSQL" - +# +# Name of schema and tables: +# SCHEMA="mtr_wsrep_notify" MEMB_TABLE="$SCHEMA.membership" STATUS_TABLE="$SCHEMA.status" @@ -65,9 +67,9 @@ configuration_change() do echo "INSERT INTO $MEMB_TABLE VALUES ( $idx, " # Don't forget to properly quote string values - echo "'$NODE'" | sed s/\\//\',\'/g + echo "'$NODE'" | sed s/\\//\',\'/g echo ");" - idx=$(( $idx + 1 )) + idx=$(( $idx+1 )) done echo "INSERT INTO $STATUS_TABLE VALUES($idx, $INDEX, '$STATUS', '$CLUSTER_UUID', $PRIMARY);" @@ -102,34 +104,35 @@ trim_string() fi } -COM=status_update # not a configuration change by default +COM='status_update' # not a configuration change by default STATUS="" CLUSTER_UUID="" -PRIMARY="0" +PRIMARY=0 INDEX="" MEMBERS="" while [ $# -gt 0 ]; do case $1 in - --status) + '--status') STATUS=$(trim_string "$2") shift ;; - --uuid) + '--uuid') CLUSTER_UUID=$(trim_string "$2") shift ;; - --primary) - [ "$2" = "yes" ] && PRIMARY="1" || PRIMARY="0" - COM=configuration_change + '--primary') + arg=$(trim_string "$2") + [ "$arg" = 'yes' ] && PRIMARY=1 || PRIMARY=0 + COM='configuration_change' shift ;; - --index) + '--index') INDEX=$(trim_string "$2") shift ;; - --members) + '--members') MEMBERS=$(trim_string "$2") shift ;; @@ -168,9 +171,7 @@ ssl_verify_server_cert=$(trim_string "$ssl_verify_server_cert"); SSL_PARAM="" -if [ -n "$ssl_key" -o -n "$ssl_cert" -o \ - -n "$ssl_ca" -o -n "$ssl_capath" -o \ - -n "$ssl_cipher" ] +if [ -n "$ssl_key$ssl_cert$ssl_ca$ssl_capath$ssl_cipher$ssl_crl$ssl_crlpath" ] then SSL_PARAM=' --ssl' [ -n "$ssl_key" ] && SSL_PARAM="$SSL_PARAM --ssl-key='$ssl_key'" @@ -181,8 +182,10 @@ then [ -n "$ssl_crl" ] && SSL_PARAM="$SSL_PARAM --ssl-crl='$ssl_crl'" [ -n "$ssl_crlpath" ] && SSL_PARAM="$SSL_PARAM --ssl-crlpath='$ssl_crlpath'" if [ -n "$ssl_verify_server_cert" ]; then - if [ $ssl_verify_server_cert -ne 0 ]; then - SSL_PARAM+=' --ssl-verify-server-cert' + if [ "$ssl_verify_server_cert" != "0" -o \ + "$ssl_verify_server_cert" = "on" ] + then + SSL_PARAM="$SSL_PARAM --ssl-verify-server-cert" fi fi fi diff --git a/mysql-test/std_data/wsrep_notify_ssl.sh b/mysql-test/std_data/wsrep_notify_ssl.sh index 2c6b6f4dacb..aeedfe49e6a 100755 --- a/mysql-test/std_data/wsrep_notify_ssl.sh +++ b/mysql-test/std_data/wsrep_notify_ssl.sh @@ -6,13 +6,13 @@ # # Edit parameters below to specify the address and login to server: # -USER=root -PSWD= +USER='root' +PSWD='' # # If these parameters are not set, then the values # passed by the server are taken: # -HOST=127.0.0.1 +HOST="127.0.0.1" PORT=$NODE_MYPORT_1 # # Edit parameters below to specify SSL parameters: @@ -20,16 +20,18 @@ PORT=$NODE_MYPORT_1 ssl_cert="$MYSQL_TEST_DIR/std_data/client-cert.pem" ssl_key="$MYSQL_TEST_DIR/std_data/client-key.pem" ssl_ca="$MYSQL_TEST_DIR/std_data/cacert.pem" -ssl_capath= -ssl_cipher= -ssl_crl= -ssl_crlpath= +ssl_capath="" +ssl_cipher="" +ssl_crl="" +ssl_crlpath="" ssl_verify_server_cert=0 # # Client executable path: # CLIENT="$EXE_MYSQL" - +# +# Name of schema and tables: +# SCHEMA="mtr_wsrep_notify" MEMB_TABLE="$SCHEMA.membership" STATUS_TABLE="$SCHEMA.status" @@ -65,9 +67,9 @@ configuration_change() do echo "INSERT INTO $MEMB_TABLE VALUES ( $idx, " # Don't forget to properly quote string values - echo "'$NODE'" | sed s/\\//\',\'/g + echo "'$NODE'" | sed s/\\//\',\'/g echo ");" - idx=$(( $idx + 1 )) + idx=$(( $idx+1 )) done echo "INSERT INTO $STATUS_TABLE VALUES($idx, $INDEX, '$STATUS', '$CLUSTER_UUID', $PRIMARY);" @@ -102,34 +104,35 @@ trim_string() fi } -COM=status_update # not a configuration change by default +COM='status_update' # not a configuration change by default STATUS="" CLUSTER_UUID="" -PRIMARY="0" +PRIMARY=0 INDEX="" MEMBERS="" while [ $# -gt 0 ]; do case $1 in - --status) + '--status') STATUS=$(trim_string "$2") shift ;; - --uuid) + '--uuid') CLUSTER_UUID=$(trim_string "$2") shift ;; - --primary) - [ "$2" = "yes" ] && PRIMARY="1" || PRIMARY="0" - COM=configuration_change + '--primary') + arg=$(trim_string "$2") + [ "$arg" = 'yes' ] && PRIMARY=1 || PRIMARY=0 + COM='configuration_change' shift ;; - --index) + '--index') INDEX=$(trim_string "$2") shift ;; - --members) + '--members') MEMBERS=$(trim_string "$2") shift ;; @@ -168,9 +171,7 @@ ssl_verify_server_cert=$(trim_string "$ssl_verify_server_cert"); SSL_PARAM="" -if [ -n "$ssl_key" -o -n "$ssl_cert" -o \ - -n "$ssl_ca" -o -n "$ssl_capath" -o \ - -n "$ssl_cipher" ] +if [ -n "$ssl_key$ssl_cert$ssl_ca$ssl_capath$ssl_cipher$ssl_crl$ssl_crlpath" ] then SSL_PARAM=' --ssl' [ -n "$ssl_key" ] && SSL_PARAM="$SSL_PARAM --ssl-key='$ssl_key'" @@ -181,8 +182,10 @@ then [ -n "$ssl_crl" ] && SSL_PARAM="$SSL_PARAM --ssl-crl='$ssl_crl'" [ -n "$ssl_crlpath" ] && SSL_PARAM="$SSL_PARAM --ssl-crlpath='$ssl_crlpath'" if [ -n "$ssl_verify_server_cert" ]; then - if [ $ssl_verify_server_cert -ne 0 ]; then - SSL_PARAM+=' --ssl-verify-server-cert' + if [ "$ssl_verify_server_cert" != "0" -o \ + "$ssl_verify_server_cert" = "on" ] + then + SSL_PARAM="$SSL_PARAM --ssl-verify-server-cert" fi fi fi diff --git a/mysql-test/suite/galera/r/galera_wsrep_new_cluster.result b/mysql-test/suite/galera/r/galera_wsrep_new_cluster.result index 3ba34e8ea79..ee48f7a4e1a 100644 --- a/mysql-test/suite/galera/r/galera_wsrep_new_cluster.result +++ b/mysql-test/suite/galera/r/galera_wsrep_new_cluster.result @@ -1,4 +1,12 @@ connection node_1; +connection node_2; +connection node_2; +Shutting down server ... +connection node_1; +connection node_2; +Cleaning grastate.dat file ... +Starting server ... +connection node_1; SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_status'; VARIABLE_VALUE Primary @@ -36,3 +44,7 @@ VARIABLE_VALUE SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_local_state_comment'; VARIABLE_VALUE Synced +Shutting down server ... +Cleaning var directory ... +Starting server ... +connection node_1; diff --git a/mysql-test/suite/galera/t/galera_var_notify_ssl_ipv6.cnf b/mysql-test/suite/galera/t/galera_var_notify_ssl_ipv6.cnf index ce121d20e03..db6f36605b7 100644 --- a/mysql-test/suite/galera/t/galera_var_notify_ssl_ipv6.cnf +++ b/mysql-test/suite/galera/t/galera_var_notify_ssl_ipv6.cnf @@ -7,14 +7,14 @@ ssl-ca=@ENV.MYSQL_TEST_DIR/std_data/cacert.pem bind-address=:: [mysqld.1] -wsrep_provider_options='base_port=@mysqld.1.#galera_port;gmcast.listen_addr=tcp://[::]:@mysqld.1.#galera_port;ist.recv_addr=[::1]:@mysqld.1.#ist_port;gcache.size=1;pc.ignore_sb=true' +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;repl.causal_read_timeout=PT90S;evs.suspect_timeout=PT10S;evs.inactive_timeout=PT30S;evs.install_timeout=PT15S;gcache.size=10M' wsrep_node_incoming_address='[::1]:@mysqld.1.port' -wsrep_node_address=::1 +wsrep_node_address=[::1]:@mysqld.1.#galera_port wsrep_sst_receive_address='[::1]:@mysqld.1.#sst_port' [mysqld.2] wsrep_cluster_address='gcomm://[::1]:@mysqld.1.#galera_port' -wsrep_provider_options='base_port=@mysqld.2.#galera_port;gmcast.listen_addr=tcp://[::]:@mysqld.2.#galera_port;ist.recv_addr=[::1]:@mysqld.2.#ist_port;gcache.size=1;pc.ignore_sb=true' -wsrep_node_address=::1 +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;repl.causal_read_timeout=PT90S;evs.suspect_timeout=PT10S;evs.inactive_timeout=PT30S;evs.install_timeout=PT15S;gcache.size=10M' wsrep_node_incoming_address='[::1]:@mysqld.2.port' +wsrep_node_address=[::1]:@mysqld.2.#galera_port wsrep_sst_receive_address='[::1]:@mysqld.2.#sst_port' diff --git a/mysql-test/suite/galera/t/galera_wsrep_new_cluster-master.opt b/mysql-test/suite/galera/t/galera_wsrep_new_cluster-master.opt deleted file mode 100644 index c31150c46af..00000000000 --- a/mysql-test/suite/galera/t/galera_wsrep_new_cluster-master.opt +++ /dev/null @@ -1 +0,0 @@ ---wsrep-new-cluster diff --git a/mysql-test/suite/galera/t/galera_wsrep_new_cluster.test b/mysql-test/suite/galera/t/galera_wsrep_new_cluster.test index 422759ece59..c85f6ee2503 100644 --- a/mysql-test/suite/galera/t/galera_wsrep_new_cluster.test +++ b/mysql-test/suite/galera/t/galera_wsrep_new_cluster.test @@ -7,6 +7,34 @@ --source include/galera_cluster.inc --source include/have_innodb.inc +# Save original auto_increment_offset values. +--let $node_1=node_1 +--let $node_2=node_2 +--source include/auto_increment_offset_save.inc + +--connection node_2 +--echo Shutting down server ... +--source include/shutdown_mysqld.inc + +--connection node_1 + +--let $wait_condition = SELECT VARIABLE_VALUE = 1 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size' +--source include/wait_condition.inc + +--connection node_2 + +# +# Delete grastate.dat with safe_to_bootstrap: 0 +# +--echo Cleaning grastate.dat file ... +--remove_file $MYSQLTEST_VARDIR/mysqld.2/data/grastate.dat + +--echo Starting server ... +--let $restart_noprint=2 +--let $start_mysqld_params="--wsrep-new-cluster" +--source include/start_mysqld.inc +--source include/wait_until_ready.inc + --connection node_1 --let $wait_condition = SELECT VARIABLE_VALUE = 'Primary' FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_status'; @@ -38,3 +66,29 @@ SELECT (VARIABLE_VALUE = 0 OR VARIABLE_VALUE = 1 ) FROM INFORMATION_SCHEMA.GLOBA SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_ready'; SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_local_state'; SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_local_state_comment'; + +--echo Shutting down server ... +--source include/shutdown_mysqld.inc + +# +# Force SST +# +--echo Cleaning var directory ... +--remove_file $MYSQLTEST_VARDIR/mysqld.2/data/grastate.dat +--remove_files_wildcard $MYSQLTEST_VARDIR/mysqld.2/data/mtr +--remove_files_wildcard $MYSQLTEST_VARDIR/mysqld.2/data/performance_schema +--remove_files_wildcard $MYSQLTEST_VARDIR/mysqld.2/data/test +--remove_files_wildcard $MYSQLTEST_VARDIR/mysqld.2/data/mysql +--remove_files_wildcard $MYSQLTEST_VARDIR/mysqld.2/data + +--echo Starting server ... +--let $start_mysqld_params= +--source include/start_mysqld.inc +--source include/wait_until_ready.inc + +--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 + +--source include/auto_increment_offset_restore.inc diff --git a/support-files/wsrep_notify.sh b/support-files/wsrep_notify.sh index dde1ded0963..67617ebe90c 100755 --- a/support-files/wsrep_notify.sh +++ b/support-files/wsrep_notify.sh @@ -6,30 +6,32 @@ # # Edit parameters below to specify the address and login to server: # -USER=root -PSWD=rootpass +USER='root' +PSWD='rootpass' # # If these parameters are not set, then the values # passed by the server are taken: # -HOST=127.0.0.1 +HOST="127.0.0.1" PORT=3306 # # Edit parameters below to specify SSL parameters: # -ssl_key= -ssl_cert= -ssl_ca= -ssl_capath= -ssl_cipher= -ssl_crl= -ssl_crlpath= +ssl_cert="" +ssl_key="" +ssl_ca="" +ssl_capath="" +ssl_cipher="" +ssl_crl="" +ssl_crlpath="" ssl_verify_server_cert=0 # # Client executable path: # CLIENT="mysql" - +# +# Name of schema and tables: +# SCHEMA="wsrep" MEMB_TABLE="$SCHEMA.membership" STATUS_TABLE="$SCHEMA.status" @@ -37,15 +39,14 @@ STATUS_TABLE="$SCHEMA.status" WSREP_ON='SET wsrep_on=ON' WSREP_OFF='SET wsrep_on=OFF' -BEGIN="$WSREP_OFF; -DROP SCHEMA IF EXISTS $SCHEMA; CREATE SCHEMA $SCHEMA; -CREATE TABLE $MEMB_TABLE ( +BEGIN="CREATE SCHEMA IF NOT EXISTS $SCHEMA; +CREATE TABLE IF NOT EXISTS $MEMB_TABLE ( idx INT UNIQUE PRIMARY KEY, uuid CHAR(40) UNIQUE, /* node UUID */ name VARCHAR(32), /* node name */ addr VARCHAR(256) /* node address */ ) ENGINE=MEMORY; -CREATE TABLE $STATUS_TABLE ( +CREATE TABLE IF NOT EXISTS $STATUS_TABLE ( size INT, /* component size */ idx INT, /* this node index */ status CHAR(16), /* this node status */ @@ -57,7 +58,7 @@ END="COMMIT; $WSREP_ON" configuration_change() { - echo "$BEGIN;" + echo "$WSREP_OFF; DROP SCHEMA IF EXISTS $SCHEMA; $BEGIN;" local idx=0 @@ -67,7 +68,7 @@ configuration_change() # Don't forget to properly quote string values echo "'$NODE'" | sed s/\\//\',\'/g echo ");" - idx=$(( $idx + 1 )) + idx=$(( $idx+1 )) done echo "INSERT INTO $STATUS_TABLE VALUES($idx, $INDEX, '$STATUS', '$CLUSTER_UUID', $PRIMARY);" @@ -77,7 +78,7 @@ configuration_change() status_update() { - echo "$WSREP_OFF; BEGIN; UPDATE $STATUS_TABLE SET status='$STATUS'; $END;" + echo "$WSREP_OFF; $BEGIN; UPDATE $STATUS_TABLE SET status='$STATUS'; $END;" } trim_string() @@ -102,34 +103,35 @@ trim_string() fi } -COM=status_update # not a configuration change by default +COM='status_update' # not a configuration change by default STATUS="" CLUSTER_UUID="" -PRIMARY="0" +PRIMARY=0 INDEX="" MEMBERS="" while [ $# -gt 0 ]; do case $1 in - --status) + '--status') STATUS=$(trim_string "$2") shift ;; - --uuid) + '--uuid') CLUSTER_UUID=$(trim_string "$2") shift ;; - --primary) - [ "$2" = "yes" ] && PRIMARY="1" || PRIMARY="0" - COM=configuration_change + '--primary') + arg=$(trim_string "$2") + [ "$arg" = 'yes' ] && PRIMARY=1 || PRIMARY=0 + COM='configuration_change' shift ;; - --index) + '--index') INDEX=$(trim_string "$2") shift ;; - --members) + '--members') MEMBERS=$(trim_string "$2") shift ;; @@ -168,9 +170,7 @@ ssl_verify_server_cert=$(trim_string "$ssl_verify_server_cert"); SSL_PARAM="" -if [ -n "$ssl_key" -o -n "$ssl_cert" -o \ - -n "$ssl_ca" -o -n "$ssl_capath" -o \ - -n "$ssl_cipher" ] +if [ -n "$ssl_key$ssl_cert$ssl_ca$ssl_capath$ssl_cipher$ssl_crl$ssl_crlpath" ] then SSL_PARAM=' --ssl' [ -n "$ssl_key" ] && SSL_PARAM="$SSL_PARAM --ssl-key='$ssl_key'" @@ -181,8 +181,10 @@ then [ -n "$ssl_crl" ] && SSL_PARAM="$SSL_PARAM --ssl-crl='$ssl_crl'" [ -n "$ssl_crlpath" ] && SSL_PARAM="$SSL_PARAM --ssl-crlpath='$ssl_crlpath'" if [ -n "$ssl_verify_server_cert" ]; then - if [ $ssl_verify_server_cert -ne 0 ]; then - SSL_PARAM+=' --ssl-verify-server-cert' + if [ "$ssl_verify_server_cert" != "0" -o \ + "$ssl_verify_server_cert" = "on" ] + then + SSL_PARAM="$SSL_PARAM --ssl-verify-server-cert" fi fi fi |