forked from TrueCloudLab/restic
cache: Drop cache entry if it cannot be processed
Failing to process data requested from the cache usually indicates a problem with the returned data. Assume that the cache entry is somehow damaged and retry downloading it once.
This commit is contained in:
parent
aa3b1925b4
commit
34c1a83340
2 changed files with 41 additions and 1 deletions
7
internal/cache/backend.go
vendored
7
internal/cache/backend.go
vendored
|
@ -161,7 +161,12 @@ func (b *Backend) Load(ctx context.Context, h restic.Handle, length int, offset
|
|||
// try loading from cache without checking that the handle is actually cached
|
||||
inCache, err := b.loadFromCache(ctx, h, length, offset, consumer)
|
||||
if inCache {
|
||||
return err
|
||||
if err == nil {
|
||||
return nil
|
||||
}
|
||||
|
||||
// drop from cache and retry once
|
||||
_ = b.Cache.remove(h)
|
||||
}
|
||||
debug.Log("error loading %v from cache: %v", h, err)
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue