restic/internal
Alexander Neumann f99c95c766 archiver: Fix intermediate index upload
A user discovered[1] that when the backup finishes during the upload of
an intermediate index, the upload is cancelled and the index never fully
saved, but the snapshot is saved and the backup finalizes without an
error. This lead to a situation where a snapshot references data that is
contained in the repo, but not referenced in any index, leading to
strange error messages.

This commit uses a dedicated context to signal the intermediate index
uploading routine to terminate after the last index has been uploaded.
This way, an upload running when the backup finishes is completed before
the routine terminates and the snapshot is saved.

[1] https://forum.restic.net/t/error-loading-tree-check-prune-and-forget-gives-error-b2-backend/406
2018-01-26 22:01:07 +01:00
..
archiver archiver: Fix intermediate index upload 2018-01-26 22:01:07 +01:00
backend Merge pull request #1588 from restic/fix-sftp-without-tty 2018-01-26 21:56:41 +01:00
cache Close backend files in case of errors 2018-01-25 21:05:57 +01:00
checker Merge pull request #1583 from restic/close-open-backend-files 2018-01-26 21:57:28 +01: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 Improve limiting HTTP based backends 2017-12-29 12:43:49 +01: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 Change List() implementation for all backends 2018-01-21 21:15:09 +01:00
options errors: Add "Fatal" prefix for Fatalf() 2018-01-06 23:27:47 +01:00
pack Optimize pack readHeader() implementation 2018-01-23 22:02:25 -05:00
pipe small cleanup: 2017-10-25 12:03:55 -04:00
repository Merge pull request #1583 from restic/close-open-backend-files 2018-01-26 21:57:28 +01:00
restic debug: Remove manual Str() call Log() 2018-01-25 20:49:41 +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