Skip to content

Commit

Permalink
Fatal on unknown error during meta fetch
Browse files Browse the repository at this point in the history
  • Loading branch information
Andrey M. Borodin committed Jun 13, 2022
1 parent cf95f9a commit 468fd1f
Show file tree
Hide file tree
Showing 3 changed files with 7 additions and 25 deletions.
3 changes: 2 additions & 1 deletion cmd/mysql/delete.go
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,8 @@ func NewMySQLDeleteHandler() (*DeleteHandler, error) {
backupObjects, err := internal.FindBackupObjects(folder)
tracelog.ErrorLogger.FatalOnError(err)

permanentBackups := internal.FindPermanentBackups(folder, mysql.NewGenericMetaFetcher())
permanentBackups := internal.GetPermanentBackups(folder.GetSubFolder(utility.BaseBackupPath),
mysql.NewGenericMetaFetcher())

return &DeleteHandler{
DeleteHandler: internal.NewDeleteHandler(folder, backupObjects, makeLessFunc(folder),
Expand Down
3 changes: 2 additions & 1 deletion internal/databases/greenplum/delete_handler.go
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,8 @@ func NewDeleteHandler(folder storage.Folder) (*DeleteHandler, error) {
return obj1.GetLastModified().Before(obj2.GetLastModified())
}

permanentBackups := internal.FindPermanentBackups(folder, NewGenericMetaFetcher())
permanentBackups := internal.GetPermanentBackups(folder.GetSubFolder(utility.BaseBackupPath),
NewGenericMetaFetcher())
isPermanentFunc := func(obj storage.Object) bool {
return internal.IsPermanent(obj.GetName(), permanentBackups, BackupNameLength)
}
Expand Down
26 changes: 3 additions & 23 deletions internal/delete_util.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,35 +10,15 @@ import (
"github.com/wal-g/wal-g/utility"
)

func FindPermanentBackups(folder storage.Folder, metaFetcher GenericMetaFetcher) map[string]bool {
tracelog.InfoLogger.Println("retrieving permanent objects")
backupTimes, err := GetBackups(folder.GetSubFolder(utility.BaseBackupPath))
if err != nil {
return map[string]bool{}
}

permanentBackups := map[string]bool{}
for _, backupTime := range backupTimes {
meta, err := metaFetcher.Fetch(
backupTime.BackupName, folder.GetSubFolder(utility.BaseBackupPath))
if err != nil {
PrintMetadataNotFoundError(backupTime, err)
continue
}
if meta.IsPermanent {
permanentBackups[backupTime.BackupName] = true
}
}
return permanentBackups
}

func PrintMetadataNotFoundError(backupTime BackupTime, err error) {
if _, ok := err.(storage.ObjectNotFoundError); ok {
tracelog.InfoLogger.Printf("Backup %s lacks metadata to check if it's permanent, ignoring...",
backupTime.BackupName)
return nil
} else {
tracelog.ErrorLogger.Printf("failed to fetch backup meta for backup %s with error %s, ignoring...",
tracelog.ErrorLogger.Fatalf("failed to fetch backup meta for backup %s with error %s",
backupTime.BackupName, err.Error())
return err
}
}

Expand Down

0 comments on commit 468fd1f

Please sign in to comment.