2
2
mirror of https://github.com/octoleo/restic.git synced 2024-06-13 14:22:23 +00:00

Merge pull request #3181 from tWido/feature-no-retry-permission

Don't retry when "Permission denied" occurs in local backend
This commit is contained in:
MichaelEischer 2020-12-23 20:24:29 +01:00 committed by GitHub
commit cb6b0f6255
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 6 additions and 5 deletions

View File

@ -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 attempts). It used to retry all backend operations, but now detects some
permanent error conditions so it can report fatal errors earlier. permanent error conditions so it can report fatal errors earlier.
Permanent failures include local disks being full and SSH connections Permanent failures include local disks being full, SSH connections
dropping. dropping and permission errors.
https://github.com/restic/restic/issues/2453 https://github.com/restic/restic/issues/2453
https://github.com/restic/restic/pull/3170 https://github.com/restic/restic/pull/3170
https://github.com/restic/restic/issues/3180
https://github.com/restic/restic/pull/3181

View File

@ -91,9 +91,8 @@ func (b *Local) Save(ctx context.Context, h restic.Handle, rd restic.RewindReade
filename := b.Filename(h) filename := b.Filename(h)
defer func() { defer func() {
// Mark non-retriable errors as such (currently only // Mark non-retriable errors as such
// "no space left on device"). if errors.Is(err, syscall.ENOSPC) || os.IsPermission(err) {
if errors.Is(err, syscall.ENOSPC) {
err = backoff.Permanent(err) err = backoff.Permanent(err)
} }
}() }()