Commit accc7f60 authored by mkaruza's avatar mkaruza

MDEV-18178 Galera test failure on galera_sst_rsync2

* Donor node will now provide binlog-index argument to wsrep_sst_rsync script if binlog is used.
* Write correct path and binlog file names into joiner binlog-index file
parent 26dcf102
...@@ -51,7 +51,6 @@ galera.galera_var_reject_queries : assertion in inline_mysql_socket_send ...@@ -51,7 +51,6 @@ galera.galera_var_reject_queries : assertion in inline_mysql_socket_send
query_cache : MDEV-18137: Galera test failure on query_cache query_cache : MDEV-18137: Galera test failure on query_cache
galera.galera_autoinc_sst_mariabackup : MDEV-18177 Galera test failure on galera_autoinc_sst_mariabackup galera.galera_autoinc_sst_mariabackup : MDEV-18177 Galera test failure on galera_autoinc_sst_mariabackup
galera.galera_ist_mariabackup : Leaves port open galera.galera_ist_mariabackup : Leaves port open
galera.galera_sst_rsync2 : MDEV-18178 Galera test failure on galera_sst_rsync2
galera.galera_kill_largechanges : MDEV-18179 Galera test failure on galera.galera_kill_largechanges galera.galera_kill_largechanges : MDEV-18179 Galera test failure on galera.galera_kill_largechanges
galera.galera_concurrent_ctas : MDEV-18180 Galera test failure on galera.galera_concurrent_ctas galera.galera_concurrent_ctas : MDEV-18180 Galera test failure on galera.galera_concurrent_ctas
galera.galera_var_retry_autocommit: MDEV-18181 Galera test failure on galera.galera_var_retry_autocommit galera.galera_var_retry_autocommit: MDEV-18181 Galera test failure on galera.galera_var_retry_autocommit
......
connection node_2;
connection node_1;
connection node_1; connection node_1;
connection node_2; connection node_2;
Performing State Transfer on a server that has been shut down cleanly and restarted Performing State Transfer on a server that has been shut down cleanly and restarted
......
...@@ -147,6 +147,7 @@ if ! [ -z $WSREP_SST_OPT_BINLOG_INDEX ] ...@@ -147,6 +147,7 @@ if ! [ -z $WSREP_SST_OPT_BINLOG_INDEX ]
then then
BINLOG_INDEX_DIRNAME=$(dirname $WSREP_SST_OPT_BINLOG_INDEX) BINLOG_INDEX_DIRNAME=$(dirname $WSREP_SST_OPT_BINLOG_INDEX)
BINLOG_INDEX_FILENAME=$(basename $WSREP_SST_OPT_BINLOG_INDEX) BINLOG_INDEX_FILENAME=$(basename $WSREP_SST_OPT_BINLOG_INDEX)
BINLOG_INDEX_FILENAME=${BINLOG_INDEX_FILENAME%.index}.index
fi fi
WSREP_LOG_DIR=${WSREP_LOG_DIR:-""} WSREP_LOG_DIR=${WSREP_LOG_DIR:-""}
...@@ -268,12 +269,12 @@ EOF ...@@ -268,12 +269,12 @@ EOF
OLD_PWD="$(pwd)" OLD_PWD="$(pwd)"
cd $BINLOG_DIRNAME cd $BINLOG_DIRNAME
if ! [ -z $WSREP_SST_OPT_BINLOG_INDEX ] if [ -z $WSREP_SST_OPT_BINLOG_INDEX ]
then then
binlog_files_full=$(tail -n $BINLOG_N_FILES ${BINLOG_FILENAME}.index) binlog_files_full=$(tail -n $BINLOG_N_FILES ${BINLOG_FILENAME}.index)
else else
cd $BINLOG_INDEX_DIRNAME cd $BINLOG_INDEX_DIRNAME
binlog_files_full=$(tail -n $BINLOG_N_FILES ${BINLOG_INDEX_FILENAME}.index) binlog_files_full=$(tail -n $BINLOG_N_FILES ${BINLOG_INDEX_FILENAME})
fi fi
cd $BINLOG_DIRNAME cd $BINLOG_DIRNAME
...@@ -510,16 +511,16 @@ EOF ...@@ -510,16 +511,16 @@ EOF
# Clean up old binlog files first # Clean up old binlog files first
rm -f ${BINLOG_FILENAME}.* rm -f ${BINLOG_FILENAME}.*
wsrep_log_info "Extracting binlog files:" wsrep_log_info "Extracting binlog files:"
tar -xvf $BINLOG_TAR_FILE >&2 tar -xvf $BINLOG_TAR_FILE >> _binlog_tmp_files_$!
for ii in $(ls -1 ${BINLOG_FILENAME}.*) while read bin_file; do
do if [ -z $WSREP_SST_OPT_BINLOG_INDEX ]
if ! [ -z $WSREP_SST_OPT_BINLOG_INDEX ]
then then
echo ${BINLOG_DIRNAME}/${ii} >> ${BINLOG_FILENAME}.index echo ${BINLOG_DIRNAME}/${bin_file} >> ${BINLOG_FILENAME}.index
else else
echo ${BINLOG_DIRNAME}/${ii} >> ${BINLOG_INDEX_DIRNAME}/${BINLOG_INDEX_FILENAME}.index echo ${BINLOG_DIRNAME}/${bin_file} >> ${BINLOG_INDEX_DIRNAME}/${BINLOG_INDEX_FILENAME}
fi fi
done done < _binlog_tmp_files_$!
rm -f _binlog_tmp_files_$!
fi fi
cd "$OLD_PWD" cd "$OLD_PWD"
......
...@@ -337,7 +337,8 @@ static int generate_binlog_index_opt_val(char** ret) ...@@ -337,7 +337,8 @@ static int generate_binlog_index_opt_val(char** ret)
{ {
DBUG_ASSERT(ret); DBUG_ASSERT(ret);
*ret= NULL; *ret= NULL;
if (opt_binlog_index_name) { if (opt_bin_log)
{
*ret= strcmp(opt_binlog_index_name, "0") ? *ret= strcmp(opt_binlog_index_name, "0") ?
my_strdup(opt_binlog_index_name, MYF(0)) : my_strdup("", MYF(0)); my_strdup(opt_binlog_index_name, MYF(0)) : my_strdup("", MYF(0));
} }
...@@ -1293,7 +1294,9 @@ static int sst_donate_other (const char* method, ...@@ -1293,7 +1294,9 @@ static int sst_donate_other (const char* method,
} }
const char* binlog_opt= ""; const char* binlog_opt= "";
const char* binlog_index_opt= "";
char* binlog_opt_val= NULL; char* binlog_opt_val= NULL;
char* binlog_index_opt_val= NULL;
int ret; int ret;
if ((ret= generate_binlog_opt_val(&binlog_opt_val))) if ((ret= generate_binlog_opt_val(&binlog_opt_val)))
...@@ -1301,7 +1304,15 @@ static int sst_donate_other (const char* method, ...@@ -1301,7 +1304,15 @@ static int sst_donate_other (const char* method,
WSREP_ERROR("sst_donate_other(): generate_binlog_opt_val() failed: %d",ret); WSREP_ERROR("sst_donate_other(): generate_binlog_opt_val() failed: %d",ret);
return ret; return ret;
} }
if ((ret= generate_binlog_index_opt_val(&binlog_index_opt_val)))
{
WSREP_ERROR("sst_prepare_other(): generate_binlog_index_opt_val() failed %d",
ret);
}
if (strlen(binlog_opt_val)) binlog_opt= WSREP_SST_OPT_BINLOG; if (strlen(binlog_opt_val)) binlog_opt= WSREP_SST_OPT_BINLOG;
if (strlen(binlog_index_opt_val)) binlog_index_opt= WSREP_SST_OPT_BINLOG_INDEX;
make_wsrep_defaults_file(); make_wsrep_defaults_file();
...@@ -1315,15 +1326,18 @@ static int sst_donate_other (const char* method, ...@@ -1315,15 +1326,18 @@ static int sst_donate_other (const char* method,
WSREP_SST_OPT_DATA " '%s' " WSREP_SST_OPT_DATA " '%s' "
" %s " " %s "
" %s '%s' " " %s '%s' "
" %s '%s' "
WSREP_SST_OPT_GTID " '%s:%lld' " WSREP_SST_OPT_GTID " '%s:%lld' "
WSREP_SST_OPT_GTID_DOMAIN_ID " '%d'" WSREP_SST_OPT_GTID_DOMAIN_ID " '%d'"
"%s", "%s",
method, addr, mysqld_unix_port, mysql_real_data_home, method, addr, mysqld_unix_port, mysql_real_data_home,
wsrep_defaults_file, wsrep_defaults_file,
binlog_opt, binlog_opt_val, binlog_opt, binlog_opt_val,
binlog_index_opt, binlog_index_opt_val,
uuid_oss.str().c_str(), gtid.seqno().get(), wsrep_gtid_domain_id, uuid_oss.str().c_str(), gtid.seqno().get(), wsrep_gtid_domain_id,
bypass ? " " WSREP_SST_OPT_BYPASS : ""); bypass ? " " WSREP_SST_OPT_BYPASS : "");
my_free(binlog_opt_val); my_free(binlog_opt_val);
my_free(binlog_index_opt_val);
if (ret < 0 || ret >= cmd_len) if (ret < 0 || ret >= cmd_len)
{ {
...@@ -1397,4 +1411,3 @@ int wsrep_sst_donate(const std::string& msg, ...@@ -1397,4 +1411,3 @@ int wsrep_sst_donate(const std::string& msg,
return (ret >= 0 ? 0 : 1); return (ret >= 0 ? 0 : 1);
} }
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment