From 82708ff7f7f609c1d67fb2e5cde93c0761b31c76 Mon Sep 17 00:00:00 2001 From: Michael Eischer Date: Sun, 14 Jun 2026 16:40:43 +0200 Subject: [PATCH] prune/repair pack: document ignored errors --- internal/repository/prune.go | 2 ++ internal/repository/repair_pack.go | 1 + 2 files changed, 3 insertions(+) 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