Skip to content

Commit 7d550c7

Browse files
philip-galeraNirbhay Choubey
authored andcommitted
LP1378355 - Pass the value of --defaults-group-suffix to xtrabackup during SST
1 parent 9d15689 commit 7d550c7

File tree

5 files changed

+33
-11
lines changed

5 files changed

+33
-11
lines changed

mysys/my_default.c

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -89,10 +89,13 @@ static char my_defaults_extra_file_buffer[FN_REFLEN];
8989
static my_bool defaults_already_read= FALSE;
9090

9191
#ifdef WITH_WSREP
92-
/* The only purpose of this global array is to hold full name of my.cnf
93-
* which seems to be otherwise unavailable */
94-
char wsrep_defaults_file[FN_REFLEN + 10]={0,};
95-
#endif /* WITH_WREP */
92+
/*
93+
The only purpose of this global array is to hold full name of my.cnf
94+
which seems to be otherwise unavailable.
95+
*/
96+
char wsrep_defaults_file[FN_REFLEN + 10]= {0,};
97+
char wsrep_defaults_group_suffix[FN_REFLEN]= {0,};
98+
#endif /* WITH_WSREP */
9699

97100
/* Which directories are searched for options (and in which order) */
98101

@@ -439,6 +442,16 @@ int get_defaults_options(int argc, char **argv,
439442
if (!*group_suffix && is_prefix(*argv, "--defaults-group-suffix="))
440443
{
441444
*group_suffix= *argv + sizeof("--defaults-group-suffix=")-1;
445+
446+
#ifdef WITH_WSREP
447+
/* make sure we do this only once - for top-level file */
448+
if ('\0' == wsrep_defaults_group_suffix[0])
449+
{
450+
strncpy(wsrep_defaults_group_suffix, *group_suffix,
451+
sizeof(wsrep_defaults_group_suffix) - 1);
452+
}
453+
#endif /* WITH_WSREP */
454+
442455
argc--;
443456
continue;
444457
}

scripts/wsrep_sst_common.sh

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,10 @@ case "$1" in
4444
readonly WSREP_SST_OPT_CONF="$2"
4545
shift
4646
;;
47+
'--defaults-group-suffix')
48+
readonly WSREP_SST_OPT_CONF_SUFFIX="$2"
49+
shift
50+
;;
4751
'--host')
4852
readonly WSREP_SST_OPT_HOST="$2"
4953
shift

scripts/wsrep_sst_xtrabackup-v2.sh

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -557,8 +557,8 @@ fi
557557

558558
INNOEXTRA=""
559559
INNOAPPLY="${INNOBACKUPEX_BIN} $disver $iapts --apply-log \$rebuildcmd \${DATA} &>\${DATA}/innobackup.prepare.log"
560-
INNOMOVE="${INNOBACKUPEX_BIN} --defaults-file=${WSREP_SST_OPT_CONF} $disver $impts --move-back --force-non-empty-directories \${DATA} &>\${DATA}/innobackup.move.log"
561-
INNOBACKUP="${INNOBACKUPEX_BIN} --defaults-file=${WSREP_SST_OPT_CONF} $disver $iopts \$tmpopts \$INNOEXTRA --galera-info --stream=\$sfmt \$itmpdir 2>\${DATA}/innobackup.backup.log"
560+
INNOMOVE="${INNOBACKUPEX_BIN} --defaults-file=${WSREP_SST_OPT_CONF} --defaults-group=mysqld${WSREP_SST_OPT_CONF_SUFFIX} $disver $impts --move-back --force-non-empty-directories \${DATA} &>\${DATA}/innobackup.move.log"
561+
INNOBACKUP="${INNOBACKUPEX_BIN} --defaults-file=${WSREP_SST_OPT_CONF} --defaults-group=mysqld${WSREP_SST_OPT_CONF_SUFFIX} $disver $iopts \$tmpopts \$INNOEXTRA --galera-info --stream=\$sfmt \$itmpdir 2>\${DATA}/innobackup.backup.log"
562562

563563
if [ "$WSREP_SST_OPT_ROLE" = "donor" ]
564564
then
@@ -879,7 +879,7 @@ then
879879

880880
if [[ $incremental -eq 1 ]];then
881881
# Added --ibbackup=xtrabackup_55 because it fails otherwise citing connection issues.
882-
INNOAPPLY="${INNOBACKUPEX_BIN} $disver --defaults-file=${WSREP_SST_OPT_CONF} \
882+
INNOAPPLY="${INNOBACKUPEX_BIN} $disver --defaults-file=${WSREP_SST_OPT_CONF} --defaults-group=mysqld${WSREP_SST_OPT_CONF_SUFFIX} \
883883
--ibbackup=xtrabackup_56 --apply-log $rebuildcmd --redo-only $BDATA --incremental-dir=${DATA} &>>${BDATA}/innobackup.prepare.log"
884884
fi
885885

sql/wsrep_sst.cc

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
#include <cstdlib>
3131

3232
extern const char wsrep_defaults_file[];
33+
extern const char wsrep_defaults_group_suffix[];
3334

3435
const char* wsrep_sst_method = WSREP_SST_DEFAULT;
3536
const char* wsrep_sst_receive_address = WSREP_SST_ADDRESS_AUTO;
@@ -462,11 +463,12 @@ static ssize_t sst_prepare_other (const char* method,
462463
WSREP_SST_OPT_AUTH" '%s' "
463464
WSREP_SST_OPT_DATA" '%s' "
464465
WSREP_SST_OPT_CONF" '%s' "
466+
WSREP_SST_OPT_CONF_SUFFIX" '%s' "
465467
WSREP_SST_OPT_PARENT" '%d'"
466468
" %s '%s' ",
467469
method, addr_in, (sst_auth_real) ? sst_auth_real : "",
468-
sst_dir, wsrep_defaults_file, (int)getpid(),
469-
binlog_opt, binlog_opt_val);
470+
sst_dir, wsrep_defaults_file, wsrep_defaults_group_suffix,
471+
(int) getpid(), binlog_opt, binlog_opt_val);
470472
my_free(binlog_opt_val);
471473

472474
if (ret < 0 || ret >= (int)sizeof(cmd_str))
@@ -761,10 +763,11 @@ static int sst_donate_mysqldump (const char* addr,
761763
WSREP_SST_OPT_LPORT" '%u' "
762764
WSREP_SST_OPT_SOCKET" '%s' "
763765
WSREP_SST_OPT_CONF" '%s' "
766+
WSREP_SST_OPT_CONF_SUFFIX" '%s' "
764767
WSREP_SST_OPT_GTID" '%s:%lld'"
765768
"%s",
766769
user, pswd, host, port, mysqld_port, mysqld_unix_port,
767-
wsrep_defaults_file, uuid_str,
770+
wsrep_defaults_file, wsrep_defaults_group_suffix, uuid_str,
768771
(long long)seqno, bypass ? " "WSREP_SST_OPT_BYPASS : "");
769772

770773
WSREP_DEBUG("Running: '%s'", cmd_str);
@@ -1034,12 +1037,13 @@ static int sst_donate_other (const char* method,
10341037
WSREP_SST_OPT_SOCKET" '%s' "
10351038
WSREP_SST_OPT_DATA" '%s' "
10361039
WSREP_SST_OPT_CONF" '%s' "
1040+
WSREP_SST_OPT_CONF_SUFFIX" '%s' "
10371041
" %s '%s' "
10381042
WSREP_SST_OPT_GTID" '%s:%lld'"
10391043
"%s",
10401044
method, addr, sst_auth_real, mysqld_unix_port,
10411045
mysql_real_data_home, wsrep_defaults_file,
1042-
binlog_opt, binlog_opt_val,
1046+
wsrep_defaults_group_suffix, binlog_opt, binlog_opt_val,
10431047
uuid, (long long) seqno,
10441048
bypass ? " "WSREP_SST_OPT_BYPASS : "");
10451049
my_free(binlog_opt_val);

sql/wsrep_sst.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
#define WSREP_SST_OPT_AUTH "--auth"
2525
#define WSREP_SST_OPT_DATA "--datadir"
2626
#define WSREP_SST_OPT_CONF "--defaults-file"
27+
#define WSREP_SST_OPT_CONF_SUFFIX "--defaults-group-suffix"
2728
#define WSREP_SST_OPT_PARENT "--parent"
2829
#define WSREP_SST_OPT_BINLOG "--binlog"
2930

0 commit comments

Comments
 (0)