mirror of https://github.com/restic/restic.git
Don't retry when "Permission denied" occurs in local backend
This commit is contained in:
parent
f7c7c2f730
commit
7dab113035
|
@ -5,8 +5,10 @@ restic retries the failing operation up to nine times (for a total of ten
|
|||
attempts). It used to retry all backend operations, but now detects some
|
||||
permanent error conditions so it can report fatal errors earlier.
|
||||
|
||||
Permanent failures include local disks being full and SSH connections
|
||||
dropping.
|
||||
Permanent failures include local disks being full, SSH connections
|
||||
dropping and permission errors.
|
||||
|
||||
https://github.com/restic/restic/issues/2453
|
||||
https://github.com/restic/restic/pull/3170
|
||||
https://github.com/restic/restic/issues/3180
|
||||
https://github.com/restic/restic/pull/3181
|
||||
|
|
|
@ -91,9 +91,8 @@ func (b *Local) Save(ctx context.Context, h restic.Handle, rd restic.RewindReade
|
|||
filename := b.Filename(h)
|
||||
|
||||
defer func() {
|
||||
// Mark non-retriable errors as such (currently only
|
||||
// "no space left on device").
|
||||
if errors.Is(err, syscall.ENOSPC) {
|
||||
// Mark non-retriable errors as such
|
||||
if errors.Is(err, syscall.ENOSPC) || os.IsPermission(err) {
|
||||
err = backoff.Permanent(err)
|
||||
}
|
||||
}()
|
||||
|
|
Loading…
Reference in New Issue