From 4ca65a1a0faf0af9bac055d3003826138b2bba4d Mon Sep 17 00:00:00 2001 From: Benjamin Herbert Date: Tue, 8 Jul 2025 18:47:15 +0200 Subject: [PATCH] fix(backup): Add error handling and logging for backup and restore scripts tar has exit code 2 for fatal errors, this was completely ignored. See also: https://www.man7.org/linux/man-pages/man1/tar.1.html#RETURN_VALUE --- backup/pvc/bin/backup.sh | 4 ++++ backup/pvc/bin/restore.sh | 12 +++++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/backup/pvc/bin/backup.sh b/backup/pvc/bin/backup.sh index 13d2f096..40c9f8dd 100755 --- a/backup/pvc/bin/backup.sh +++ b/backup/pvc/bin/backup.sh @@ -51,6 +51,10 @@ if [[ "$ret" -eq 0 ]]; then _log "INFO" "[backup] backup ${BACKUP_NUMBER} was completed without warnings" elif [[ "$ret" -eq 1 ]]; then _log "INFO" "[backup] backup ${BACKUP_NUMBER} was completed with some warnings" +else + _log "ERROR" "[backup] backup ${BACKUP_NUMBER} failed with error code: $ret" + _clean + exit "$ret" fi mv "${BACKUP_TMP_DIR}/${BACKUP_NUMBER}.tar.zstd" "${BACKUP_DIR}/${BACKUP_NUMBER}.tar.zstd" diff --git a/backup/pvc/bin/restore.sh b/backup/pvc/bin/restore.sh index 3a692625..b9a71a48 100755 --- a/backup/pvc/bin/restore.sh +++ b/backup/pvc/bin/restore.sh @@ -39,7 +39,17 @@ else exit 1 fi -tar $OPTS -C "${JENKINS_HOME}" -xf "${BACKUP_DIR}/${BACKUP_NUMBER}.${EXT}" +tar $OPTS -C "${JENKINS_HOME}" -xf "${BACKUP_DIR}/${BACKUP_NUMBER}.${EXT}" || ret=$? + +if [[ "$ret" -eq 0 ]]; then + _log "INFO" "[backup] backup ${BACKUP_NUMBER} was completed without warnings" +elif [[ "$ret" -eq 1 ]]; then + _log "INFO" "[backup] backup ${BACKUP_NUMBER} was completed with some warnings" +else + _log "ERROR" "[backup] backup ${BACKUP_NUMBER} failed with error code: $ret" + exit "$ret" +fi + _log "INFO" "[restore] deleting lock file ${TRAP_FILE}" test -f "${TRAP_FILE}" && rm -f "${TRAP_FILE}"