diff --git a/internal/repository/prune.go b/internal/repository/prune.go index becbc99d2..20459aed0 100644 --- a/internal/repository/prune.go +++ b/internal/repository/prune.go @@ -611,6 +611,7 @@ func (plan *PrunePlan) Execute(ctx context.Context, printer progress.Printer) er // unreferenced packs can be safely deleted first if len(plan.removePacksFirst) != 0 { printer.P("deleting unreferenced packs\n") + // ignoring errors is fine here as keeping too many packs cannot damage the repository _ = deleteFiles(ctx, true, &internalRepository{repo}, plan.removePacksFirst, restic.PackFile, printer) // forget unused data plan.removePacksFirst = nil @@ -668,6 +669,7 @@ func (plan *PrunePlan) Execute(ctx context.Context, printer progress.Printer) er if len(plan.removePacks) != 0 { printer.P("removing %d old packs", len(plan.removePacks)) + // ignoring errors is fine here as keeping too many packs cannot damage the repository _ = deleteFiles(ctx, true, &internalRepository{repo}, plan.removePacks, restic.PackFile, printer) } if ctx.Err() != nil { diff --git a/internal/repository/repair_pack.go b/internal/repository/repair_pack.go index 1c27acf5b..bbcd52617 100644 --- a/internal/repository/repair_pack.go +++ b/internal/repository/repair_pack.go @@ -79,6 +79,7 @@ func resolveBlobsForPacks(ctx context.Context, repo *Repository, ids restic.IDSe if ids.Has(id) { blobs, err := repo.listPack(ctx, id, size) if err != nil { + // ignore errors for broken pack files to be able to salvage as much as possible return nil } packToBlobs[id] = blobs