From d928124b0176205ab2b66b691a4935c99593ab12 Mon Sep 17 00:00:00 2001 From: Lyndon-Li Date: Tue, 25 Apr 2023 12:20:09 +0800 Subject: [PATCH] fix issue 6182 Signed-off-by: Lyndon-Li --- changelogs/unreleased/6184-Lyndon-Li | 1 + pkg/podvolume/backupper.go | 25 +++++++++++++++---------- 2 files changed, 16 insertions(+), 10 deletions(-) create mode 100644 changelogs/unreleased/6184-Lyndon-Li diff --git a/changelogs/unreleased/6184-Lyndon-Li b/changelogs/unreleased/6184-Lyndon-Li new file mode 100644 index 000000000..fb3999f08 --- /dev/null +++ b/changelogs/unreleased/6184-Lyndon-Li @@ -0,0 +1 @@ +Fix issue #6182. If pod is not running, don't treat it as an error, let it go and leave a warning. \ No newline at end of file diff --git a/pkg/podvolume/backupper.go b/pkg/podvolume/backupper.go index cc62aaaca..641c41f28 100644 --- a/pkg/podvolume/backupper.go +++ b/pkg/podvolume/backupper.go @@ -132,6 +132,21 @@ func (b *backupper) BackupPodVolumes(backup *velerov1api.Backup, pod *corev1api. return nil, nil } + err := kube.IsPodRunning(pod) + if err != nil { + for _, volumeName := range volumesToBackup { + err = errors.Wrapf(err, "backup for volume %s is skipped", volumeName) + log.WithError(err).Warn("Skip pod volume") + } + + return nil, nil + } + + err = nodeagent.IsRunningInNode(b.ctx, backup.Namespace, pod.Spec.NodeName, b.podClient) + if err != nil { + return nil, []error{err} + } + repositoryType := getRepositoryType(b.uploaderType) if repositoryType == "" { err := errors.Errorf("empty repository type, uploader %s", b.uploaderType) @@ -143,16 +158,6 @@ func (b *backupper) BackupPodVolumes(backup *velerov1api.Backup, pod *corev1api. return nil, []error{err} } - err = kube.IsPodRunning(pod) - if err != nil { - return nil, []error{err} - } - - err = nodeagent.IsRunningInNode(b.ctx, backup.Namespace, pod.Spec.NodeName, b.podClient) - if err != nil { - return nil, []error{err} - } - // get a single non-exclusive lock since we'll wait for all individual // backups to be complete before releasing it. b.repoLocker.Lock(repo.Name)