restic/internal/backend
Alexander Neumann 93210614f4 backend/retry: return worker function error and abort
This is a bug fix: Before, when the worker function fn in List() of the
RetryBackend returned an error, the operation is retried with the next
file. This is not consistent with the documentation, the intention was
that when fn returns an error, this is passed on to the caller and the
List() operation is aborted. Only errors happening on the underlying
backend are retried.

The error leads to restic ignoring exclusive locks that are present in
the repo, so it may happen that a new backup is written which references
data that is going to be removed by a concurrently running `prune`
operation.

The bug was reported by a user here:
https://forum.restic.net/t/restic-backup-returns-0-exit-code-when-already-locked/484
2018-02-24 13:26:13 +01:00
..
azure Merge pull request #1623 from restic/backend-relax-restrictions 2018-02-18 12:56:52 +01:00
b2 Merge pull request #1623 from restic/backend-relax-restrictions 2018-02-18 12:56:52 +01:00
gs Merge pull request #1623 from restic/backend-relax-restrictions 2018-02-18 12:56:52 +01:00
local Reworked Backend.Load API to retry errors during ongoing download 2018-02-16 21:12:14 -05:00
location s3: Remove default prefix "/restic" 2017-11-21 21:33:09 +01:00
mem Reworked Backend.Load API to retry errors during ongoing download 2018-02-16 21:12:14 -05:00
rest Reworked Backend.Load API to retry errors during ongoing download 2018-02-16 21:12:14 -05:00
s3 Merge pull request #1623 from restic/backend-relax-restrictions 2018-02-18 12:56:52 +01:00
sftp Reworked Backend.Load API to retry errors during ongoing download 2018-02-16 21:12:14 -05:00
swift Merge pull request #1623 from restic/backend-relax-restrictions 2018-02-18 12:56:52 +01:00
test Merge pull request #1623 from restic/backend-relax-restrictions 2018-02-18 12:56:52 +01:00
testdata Moves files 2017-07-23 14:19:13 +02:00
backend_error.go Reworked Backend.Load API to retry errors during ongoing download 2018-02-16 21:12:14 -05:00
backend_retry.go backend/retry: return worker function error and abort 2018-02-24 13:26:13 +01:00
backend_retry_test.go backend/retry: return worker function error and abort 2018-02-24 13:26:13 +01:00
doc.go Moves files 2017-07-23 14:19:13 +02:00
http_transport.go Read TLS client cert and key from the same file 2018-01-27 14:02:01 +01:00
layout.go backend: Only return top-level files for most dirs 2017-12-14 19:14:16 +01:00
layout_default.go backend: Only return top-level files for most dirs 2017-12-14 19:14:16 +01:00
layout_rest.go backend: Only return top-level files for most dirs 2017-12-14 19:14:16 +01:00
layout_s3legacy.go backend: Only return top-level files for most dirs 2017-12-14 19:14:16 +01:00
layout_test.go Remove all dot-imports 2017-10-02 15:06:39 +02:00
paths.go Moves files 2017-07-23 14:19:13 +02:00
semaphore.go swift backend: fix premature release of semaphore in Load() & document 2017-11-02 12:38:17 -04:00
utils.go Reworked Backend.Load API to retry errors during ongoing download 2018-02-16 21:12:14 -05:00
utils_test.go Reworked Backend.Load API to retry errors during ongoing download 2018-02-16 21:12:14 -05:00