diff options
author | Julius Goryavsky <julius.goryavsky@mariadb.com> | 2021-11-16 07:32:14 +0100 |
---|---|---|
committer | Julius Goryavsky <julius.goryavsky@mariadb.com> | 2021-11-23 03:10:47 +0100 |
commit | 2f51511c0831a683cec68b021ffea3434078c851 (patch) | |
tree | d476adde35d24e8c1060ef60f84f538ec2012a4b /scripts | |
parent | b952599786ed8ee453417eaf5173afa72779e68b (diff) | |
download | mariadb-git-2f51511c0831a683cec68b021ffea3434078c851.tar.gz |
MDEV-26915: SST scripts do not take log_bin_index setting into accountbb-10.2-MDEV-26915-galera
Currently, SST scripts assume that the filename specified in
the --log-bin-index argument either does not contain an extension
or uses the standard ".index" extension. Similar assumptions are
used for the log_bin_index parameter read from the configuration
file. This commit adds support for arbitrary extensions for the
index file paths.
Diffstat (limited to 'scripts')
-rw-r--r-- | scripts/wsrep_sst_common.sh | 14 | ||||
-rw-r--r-- | scripts/wsrep_sst_mariabackup.sh | 6 | ||||
-rw-r--r-- | scripts/wsrep_sst_rsync.sh | 4 | ||||
-rw-r--r-- | scripts/wsrep_sst_xtrabackup-v2.sh | 6 |
4 files changed, 20 insertions, 10 deletions
diff --git a/scripts/wsrep_sst_common.sh b/scripts/wsrep_sst_common.sh index b2c9539a02f..dbd639595df 100644 --- a/scripts/wsrep_sst_common.sh +++ b/scripts/wsrep_sst_common.sh @@ -230,7 +230,7 @@ case "$1" in shift ;; '--binlog-index'|'--log-bin-index') - readonly WSREP_SST_OPT_BINLOG_INDEX="$2" + WSREP_SST_OPT_BINLOG_INDEX="$2" shift ;; '--log-basename') @@ -453,7 +453,7 @@ if [ -n "${MYSQLD_OPT_LOG_BIN:-}" -a \ fi if [ -n "${MYSQLD_OPT_LOG_BIN_INDEX:-}" -a \ -z "$WSREP_SST_OPT_BINLOG_INDEX" ]; then - readonly WSREP_SST_OPT_BINLOG_INDEX="$MYSQLD_OPT_LOG_BIN_INDEX" + WSREP_SST_OPT_BINLOG_INDEX="$MYSQLD_OPT_LOG_BIN_INDEX" fi if [ -n "${MYSQLD_OPT_DATADIR:-}" -a \ -z "$WSREP_SST_OPT_DATA" ]; then @@ -563,6 +563,16 @@ get_binlog() # is already defined above): readonly WSREP_SST_OPT_BINLOG_INDEX="$WSREP_SST_OPT_BINLOG.index" fi + else + # Remove all directories from the index file path: + local filename="${WSREP_SST_OPT_BINLOG_INDEX##*/}" + # Check if the index file name contains the extension: + if [ "${filename%.*}" = "$filename" ]; then + # Let's add the default extension (".index"): + readonly WSREP_SST_OPT_BINLOG_INDEX="$WSREP_SST_OPT_BINLOG_INDEX.index" + else + readonly WSREP_SST_OPT_BINLOG_INDEX + fi fi fi } diff --git a/scripts/wsrep_sst_mariabackup.sh b/scripts/wsrep_sst_mariabackup.sh index fa6f48db776..b429a9effd5 100644 --- a/scripts/wsrep_sst_mariabackup.sh +++ b/scripts/wsrep_sst_mariabackup.sh @@ -1249,8 +1249,8 @@ then cd "$binlog_dir" wsrep_log_info "Cleaning the binlog directory $binlog_dir as well" rm -fv "$WSREP_SST_OPT_BINLOG".[0-9]* 1>&2 \+ || true - binlog_index="${WSREP_SST_OPT_BINLOG_INDEX%.index}.index" - [ -f "$binlog_index" ] && rm -fv "$binlog_index" 1>&2 \+ || true + [ -f "$WSREP_SST_OPT_BINLOG_INDEX" ] && \ + rm -fv "$WSREP_SST_OPT_BINLOG_INDEX" 1>&2 \+ || true cd "$OLD_PWD" fi @@ -1325,7 +1325,7 @@ then cd "$BINLOG_DIRNAME" for bfile in $(ls -1 "$BINLOG_FILENAME".[0-9]*); do - echo "$BINLOG_DIRNAME/$bfile" >> "${WSREP_SST_OPT_BINLOG_INDEX%.index}.index" + echo "$BINLOG_DIRNAME/$bfile" >> "$WSREP_SST_OPT_BINLOG_INDEX" done cd "$OLD_PWD" diff --git a/scripts/wsrep_sst_rsync.sh b/scripts/wsrep_sst_rsync.sh index ad9688011e1..29c9cd43470 100644 --- a/scripts/wsrep_sst_rsync.sh +++ b/scripts/wsrep_sst_rsync.sh @@ -392,7 +392,7 @@ EOF # Prepare binlog files cd "$BINLOG_DIRNAME" - binlog_files_full=$(tail -n $BINLOG_N_FILES "${WSREP_SST_OPT_BINLOG_INDEX%.index}.index") + binlog_files_full=$(tail -n $BINLOG_N_FILES "$WSREP_SST_OPT_BINLOG_INDEX") binlog_files="" for ii in $binlog_files_full @@ -732,7 +732,7 @@ EOF if [ -f "$BINLOG_TAR_FILE" ]; then cd "$BINLOG_DIRNAME" - binlog_index="${WSREP_SST_OPT_BINLOG_INDEX%.index}.index" + binlog_index="$WSREP_SST_OPT_BINLOG_INDEX" # Clean up old binlog files first rm -f "$BINLOG_FILENAME".[0-9]* diff --git a/scripts/wsrep_sst_xtrabackup-v2.sh b/scripts/wsrep_sst_xtrabackup-v2.sh index 70a4337f24e..73f15e79a4c 100644 --- a/scripts/wsrep_sst_xtrabackup-v2.sh +++ b/scripts/wsrep_sst_xtrabackup-v2.sh @@ -1275,8 +1275,8 @@ then cd "$binlog_dir" wsrep_log_info "Cleaning the binlog directory $binlog_dir as well" rm -fv "$WSREP_SST_OPT_BINLOG".[0-9]* 1>&2 \+ || true - binlog_index="${WSREP_SST_OPT_BINLOG_INDEX%.index}.index" - [ -f "$binlog_index" ] && rm -fv "$binlog_index" 1>&2 \+ || true + [ -f "$WSREP_SST_OPT_BINLOG_INDEX" ] && \ + rm -fv "$WSREP_SST_OPT_BINLOG_INDEX" 1>&2 \+ || true cd "$OLD_PWD" fi @@ -1353,7 +1353,7 @@ then cd "$BINLOG_DIRNAME" for bfile in $(ls -1 "$BINLOG_FILENAME".[0-9]*); do - echo "$BINLOG_DIRNAME/$bfile" >> "${WSREP_SST_OPT_BINLOG_INDEX%.index}.index" + echo "$BINLOG_DIRNAME/$bfile" >> "$WSREP_SST_OPT_BINLOG_INDEX" done cd "$OLD_PWD" |