restic/internal
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
..
archiver Reworked Backend.Load API to retry errors during ongoing download 2018-02-16 21:12:14 -05:00
backend backend/retry: return worker function error and abort 2018-02-24 13:26:13 +01:00
cache Reworked Backend.Load API to retry errors during ongoing download 2018-02-16 21:12:14 -05:00
checker Introduced repository.DownloadAndHash helper 2018-02-16 21:13:11 -05:00
crypto crypto: Rework Seal/Open to use sliceForAppend 2017-11-01 10:30:40 +01:00
debug debug: Auto-shorten IDs passed as parameters 2018-01-25 20:49:26 +01:00
errors errors: Make Cause() unwrap *url.Error 2018-01-23 23:14:05 +01:00
filter filter: document recursive wildcards 2017-09-04 14:38:48 -07:00
fs fs: Make HasPathPrefix work with relative paths 2018-01-05 17:38:52 +01:00
fuse debug: Remove manual Str() call Log() 2018-01-25 20:49:41 +01:00
hashing Moves files 2017-07-23 14:19:13 +02:00
index Merge pull request #1582 from restic/optimize-debug-log 2018-01-26 21:57:18 +01:00
limiter Reworked Backend.Load API to retry errors during ongoing download 2018-02-16 21:12:14 -05:00
list Optimize Repository.ListPack() 2018-01-23 22:39:51 -05:00
migrations Fix calls to repo/backend.List() everywhere 2018-01-21 21:15:09 +01:00
mock Reworked Backend.Load API to retry errors during ongoing download 2018-02-16 21:12:14 -05:00
options errors: Add "Fatal" prefix for Fatalf() 2018-01-06 23:27:47 +01:00
pack Incorporate PR review comments. 2018-02-22 17:37:10 +00:00
pipe small cleanup: 2017-10-25 12:03:55 -04:00
repository Introduced repository.DownloadAndHash helper 2018-02-16 21:13:11 -05:00
restic backend/retry: return worker function error and abort 2018-02-24 13:26:13 +01:00
test internal: check error before deferring file Close() 2017-08-13 19:28:13 +02:00
walk debug: Remove manual Str() call Log() 2018-01-25 20:49:41 +01:00
worker Run goimports 2017-07-23 14:21:03 +02:00