mirror of
https://github.com/MariaDB/server.git
synced 2025-08-01 03:47:19 +03:00
MDEV-28205: SST via mariabackup stops on failure while archiving logs
Currenly SST script for mariabackup stops on any failure while archiving logs, e.g. when unable to create directory, insufficient permissions, gzip failure, etc. However, in case of such problems, the script should issue a warning and continue without archiving, but not exit with a fatal error. This commit adds this fix to the SST script for mariabackup.
This commit is contained in:
@ -535,7 +535,14 @@ read_cnf()
|
||||
ssystag=$(parse_cnf mysqld_safe syslog-tag "${SST_SYSLOG_TAG:-}")
|
||||
ssystag="$ssystag-"
|
||||
sstlogarchive=$(parse_cnf sst sst-log-archive 1)
|
||||
sstlogarchivedir=$(parse_cnf sst sst-log-archive-dir '/tmp/sst_log_archive')
|
||||
sstlogarchivedir=""
|
||||
if [ $sstlogarchive -ne 0 ]; then
|
||||
sstlogarchivedir=$(parse_cnf sst sst-log-archive-dir \
|
||||
'/tmp/sst_log_archive')
|
||||
if [ -n "$sstlogarchivedir" ]; then
|
||||
sstlogarchivedir=$(trim_dir "$sstlogarchivedir")
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ $speciald -eq 0 ]; then
|
||||
wsrep_log_error \
|
||||
@ -879,7 +886,15 @@ else
|
||||
|
||||
if [ -n "$sstlogarchivedir" ]; then
|
||||
if [ ! -d "$sstlogarchivedir" ]; then
|
||||
mkdir -p "$sstlogarchivedir"
|
||||
if ! mkdir -p "$sstlogarchivedir"; then
|
||||
sstlogarchivedir=""
|
||||
wsrep_log_warning \
|
||||
"Unable to create '$sstlogarchivedir' directory"
|
||||
fi
|
||||
elif [ ! -w "$sstlogarchivedir" ]; then
|
||||
sstlogarchivedir=""
|
||||
wsrep_log_warning \
|
||||
"The '$sstlogarchivedir' directory is not writtable"
|
||||
fi
|
||||
fi
|
||||
|
||||
@ -891,8 +906,8 @@ else
|
||||
newfile="$INNOAPPLYLOG.$ARCHIVETIMESTAMP"
|
||||
fi
|
||||
wsrep_log_info "Moving '$INNOAPPLYLOG' to '$newfile'"
|
||||
mv "$INNOAPPLYLOG" "$newfile"
|
||||
gzip "$newfile"
|
||||
mv "$INNOAPPLYLOG" "$newfile" && gzip "$newfile" || \
|
||||
wsrep_log_warning "Failed to archive log file ('$newfile')"
|
||||
fi
|
||||
|
||||
if [ -e "$INNOMOVELOG" ]; then
|
||||
@ -903,8 +918,8 @@ else
|
||||
newfile="$INNOMOVELOG.$ARCHIVETIMESTAMP"
|
||||
fi
|
||||
wsrep_log_info "Moving '$INNOMOVELOG' to '$newfile'"
|
||||
mv "$INNOMOVELOG" "$newfile"
|
||||
gzip "$newfile"
|
||||
mv "$INNOMOVELOG" "$newfile" && gzip "$newfile" ||
|
||||
wsrep_log_warning "Failed to archive log file ('$newfile')"
|
||||
fi
|
||||
|
||||
if [ -e "$INNOBACKUPLOG" ]; then
|
||||
@ -915,8 +930,8 @@ else
|
||||
newfile="$INNOBACKUPLOG.$ARCHIVETIMESTAMP"
|
||||
fi
|
||||
wsrep_log_info "Moving '$INNOBACKUPLOG' to '$newfile'"
|
||||
mv "$INNOBACKUPLOG" "$newfile"
|
||||
gzip "$newfile"
|
||||
mv "$INNOBACKUPLOG" "$newfile" && gzip "$newfile" ||
|
||||
wsrep_log_warning "Failed to archive log file ('$newfile')"
|
||||
fi
|
||||
fi
|
||||
INNOAPPLY="> '$INNOAPPLYLOG' 2>&1"
|
||||
|
Reference in New Issue
Block a user