Commit Graph

1036 Commits

Author SHA1 Message Date
Michael Eischer 2296fdf668 lock: introduce short delay between failed locking retries
Failed locking attempts were immediately retried up to three times
without any delay between the retries. If a lock file is not found while
checking for other locks, with the reworked backend retries there is no
delay between those retries. This is a problem if a backend requires a
few seconds to reflect file deletions in the file listings. To work
around this problem, introduce a short exponentially increasing delay
between the retries. The number of retries is now increased to 4. This
results in delays of 5, 10 and 20 seconds between the retries.
2024-08-26 16:31:42 +02:00
Michael Eischer 89d216ca76
Merge pull request #5011 from MichaelEischer/fix-canceled-retry
backend/retry: don't trip circuit breaker if context is canceled
2024-08-26 16:30:03 +02:00
Michael Eischer e24dd5a162 backend/retry: don't trip circuit breaker if context is canceled
When the context used for a load operation is canceled, then the result
is always an error independent of whether the file could be retrieved
from the backend. Do not false positively trip the circuit breaker in
this case.

The old behavior was problematic when trying to lock a repository. When
`Lock.checkForOtherLocks` listed multiple lock files in parallel and one
of them fails to load, then all other loads were canceled. This
cancelation was remembered by the circuit breaker, such that locking
retries would fail.
2024-08-26 16:22:21 +02:00
Michael Eischer 36c4475ad9 rest: improve handling of HTTP2 goaway
The HTTP client can only retry HTTP2 requests after receiving a GOAWAY
response if it can rewind the body. As we use a custom data type,
explicitly provide an implementation of `GetBody`.
2024-08-26 15:44:17 +02:00
Michael Eischer b8f409723d make timeout for slow requests configurable 2024-08-26 14:14:43 +02:00
Michael Eischer 2e55209b34 restic: restore timestamps after extended attributes
restoring the xattr containing resource forks on macOS apparently
modifies the file modification timestamps. Thus, restore the timestamp
after xattrs.
2024-08-25 23:18:55 +02:00
Michael Eischer 5cca6e66be
Merge pull request #4981 from konidev20/fix-gh-4934-cleanup-removed-snaphots-from-cache
cache: clear snapshot files from cache during load index
2024-08-16 19:04:59 +00:00
Srigovind Nayak c9097994b9
changelog: update changelog 2024-08-17 00:24:19 +05:30
Michael Terry 56f28c9bd5 main: return an exit code (12) for "bad password" errors 2024-08-15 16:55:45 -04:00
Michael Eischer 7462471c6b
Merge pull request #4952 from mikix/json-exit
Format exit errors as JSON if requested
2024-08-15 20:19:38 +00:00
Michael Eischer 80f24584a5
Merge pull request #4998 from zmanda/ea_vss_fix
Fix extended attributes handling for VSS snapshots
2024-08-15 19:51:35 +00:00
Michael Eischer 36b5580c1c
Merge pull request #4989 from plant99/progress-bar-for-restore-verify
restore: Add progress bar to 'restore --verify'
2024-08-15 19:34:05 +00:00
aneesh-n 19f487750e
Add test cases and handle volume GUID paths
Gracefully handle errors while checking for EA and add debug logs.
2024-08-11 19:25:58 -06:00
Shivashis Padhi f1407afd1f
restore: Add progress bar to 'restore --verify' 2024-08-11 22:25:21 +02:00
Srigovind Nayak 506e07127f
changelog: add unrelease changelog 2024-08-11 23:41:07 +05:30
Michael Terry 6283915f86 main: format exit errors as JSON when using --json 2024-08-11 12:52:50 -04:00
aneesh-n b5b5c1fe8e
Add changelog 2024-08-11 01:32:55 -06:00
Michael Eischer 3f5e2160de
Merge pull request #4938 from MichaelEischer/bump-go-version
Bump go version to 1.21
2024-08-10 19:57:59 +02:00
Michael Eischer 84c79f1456 bump required go version to 1.21 2024-08-10 19:16:10 +02:00
Michael Eischer 86390b453d
Merge pull request #4980 from zmanda/unsupported-ea-handling
Skip ExtendedAttribute processing in Windows for volumes that do not support EA
2024-08-10 17:11:12 +00:00
Michael Eischer 05571286b2
Merge pull request #4946 from mikix/json-errors
Improve error handling in --json mode
2024-08-10 17:04:56 +00:00
aneesh-n 18e9d71d7a
Fix review comments 2024-08-10 10:38:04 -06:00
Michael Eischer a164789321
Merge pull request #4977 from MichaelEischer/warn-on-incomplete-metadata
backup: warn but store store item if extended metadata is incomplete
2024-08-10 17:59:25 +02:00
aneesh-n 041c0705e4
Add changelog 2024-08-03 16:19:59 -06:00
Michael Eischer 73c9780321 backup: store but warn if extended metadata for item is incomplete
Files were not included in the backup if the extended metadata for the
file could not be read. This is rather drastic. Instead settle on
returning a warning but still including the file in the backup.
2024-08-03 22:25:29 +02:00
Michael Eischer a48baf6f3a
Merge pull request #4976 from textaligncenter/backup-panic
fix panic in fs_reader
2024-08-03 19:56:15 +00:00
Michael Terry a376323331 restore: print JSON versions of errors in --json mode
Previously, they were printed as freeform text.

This also adds a ui.Terminal interface to make writing
tests easier and also adds a few tests.
2024-08-03 15:18:46 -04:00
textaligncenter d8ea178e69 fix panic in fs_reader 2024-08-03 19:08:04 +00:00
Michael Eischer d4db5a364e
Merge pull request #4958 from mikix/restore-errors
restore: clean up error handling when restoring metadata
2024-08-03 17:58:54 +00:00
Michael Eischer d407abb50f
Merge pull request #4960 from MichaelEischer/reduce-cancelation-delays
Add more checks for canceled contexts
2024-08-03 18:23:20 +02:00
Michael Eischer 1c775feecc add changelog for cancelation delay 2024-08-03 18:13:24 +02:00
Michael Eischer b3bfb5ed44 add changelog for long paths on windows 2024-08-03 18:09:28 +02:00
Michael Terry 6a97833337 restore: clean up error handling when restoring metadata
- Fix a logic error that instead of reporting the *first*
  metadata-setting error that appears, we were instead reporting the
  *last* error (and only if the lchown call failed!).
- Don't show any errors when setting metadata for files in non-root
  mode (things like timestamps, attributes). Previously, only lchown
  errors were skipped. But other kinds of attribute errors make sense
  to skip as well. The code path happened to work correctly before
  because of the above logic error. But once that was fixed, this
  change needed to happen too.
2024-07-30 19:27:34 -04:00
Alexander Neumann ad09d21aaf Prepare changelog for 0.17.0 2024-07-26 11:28:55 +02:00
Leo R. Lundgren 5a8c915443 doc: Remove unrelated PR URL from changelog entry 2024-07-25 14:27:43 +02:00
Michael Eischer 2be8793de2
Merge pull request #4933 from MichaelEischer/backup-source
docs: Replace all uses of target in relation to backup
2024-07-24 21:08:39 +02:00
Michael Eischer 636bf2915e minor tweaks 2024-07-24 20:40:15 +02:00
Michael Eischer 729e009485 replace all uses of target in relation to backup 2024-07-24 19:40:53 +02:00
Leo R. Lundgren 77ec8ae091 doc: Polish unreleased changelogs 2024-07-23 00:51:57 +02:00
Alex Johnson 3bf2927006 Update snapshot summary on rewrite
Signed-off-by: Alex Johnson <hello@alex-johnson.net>
2024-07-16 12:06:50 -05:00
Michael Eischer 4a9536b829 amend restore overwrite changelog 2024-07-14 11:21:11 +02:00
Michael Eischer 36cc62075c add exit code changelog 2024-07-10 22:13:37 +02:00
Michael Eischer 5e1d0ffd99
Merge pull request #4911 from MichaelEischer/fix-filtered-ls-ncdu
ls: Fix --ncdu output with path filters and fix disk size
2024-07-10 20:27:42 +02:00
Michael Eischer d8dbc71deb
Merge pull request #4908 from MichaelEischer/improve-anonymous-s3
S3: Improve anonymous access
2024-07-10 20:19:23 +02:00
Michael Eischer 5067a40bd8 update ncdu changelog 2024-07-10 20:18:53 +02:00
Michael Eischer dc0db4eda4 add s3 anonymous authentication changelog entry 2024-07-10 20:10:27 +02:00
Michael Eischer f980f5647e snapshots: also show snapshot size in compact view 2024-07-08 20:00:26 +02:00
Michael Eischer 54316978cd add restore --delete changelog 2024-07-05 22:38:39 +02:00
Michael Eischer 798256ec52 restore: add dry-run docs 2024-07-05 20:41:27 +02:00
Michael Eischer a03e00373c update repair packs changelog 2024-07-05 20:04:25 +02:00
Michael Eischer 6fadc0131b
Merge pull request #4883 from MichaelEischer/fix-check-cache
check: fix cachedir creation when using default location
2024-07-04 22:06:28 +02:00
Viktor Szépe ac00229386 Fix typos 2024-07-03 20:02:06 +02:00
Michael Eischer c3ad56474d Merge branch 'patch-release' 2024-07-01 21:49:39 +02:00
Alexander Neumann 2fa1b42706 Prepare changelog for 0.16.5 2024-07-01 21:25:33 +02:00
Michael Eischer ce0cbc7a36 check: fix cachedir creation when using default location 2024-06-30 12:04:57 +02:00
Maik Riechert 834f08fe2d Azure: add option to force use of CLI credential 2024-06-26 20:59:51 +02:00
Michael Eischer e9d711422a bump azure, golang and gcs dependencies 2024-06-26 20:49:23 +02:00
Michael Eischer 3d73ae9988 update restore changelog 2024-06-13 22:32:53 +02:00
Michael Eischer 3ec28ff853 update restore --overwrite documentation 2024-06-13 21:17:30 +02:00
Michael Eischer 663151db57
Merge pull request #4837 from MichaelEischer/restore-options
Make restore overwrite behavior configurable
2024-06-12 22:52:55 +02:00
Michael Eischer 105261e12e add changelog for restore --overwrite 2024-06-12 22:36:52 +02:00
Michael Eischer f834c1f08a
Merge pull request #4825 from MichaelEischer/bump-fuse
mount: support fuse-t on macOS
2024-06-12 20:33:05 +02:00
Michael Eischer 058292700c mount: support fuse-t on macOS 2024-06-11 22:52:08 +02:00
Michael Eischer be05a17e15
Merge pull request #4811 from konidev20/fix-gh-4781-restore-include-and-exclude-file-switches
Restore flags to include from file and exclude from file
2024-06-10 19:36:07 +00:00
Michael Eischer fc3841e7cc
Merge pull request #4851 from MichaelEischer/fix-utf-16-key
key add/passwd: handle UTF-16 encoding correctly
2024-06-09 11:27:58 +02:00
Michael Eischer 8440b94159
Merge pull request #4807 from zmanda/windows-extendedattribs
Back up and restore Extended Attributes on Windows NTFS
2024-06-09 09:18:04 +00:00
Srigovind Nayak 2a2c09e666
changelog: update changelog for gh-4781 2024-06-08 13:23:35 +05:30
Michael Eischer c55665be2c key add/passwd: handle UTF-16 encoding correctly
Just use the exact some function for load a password from a file
everywhere.
2024-06-05 22:19:26 +02:00
Michael Eischer db2398f35b backend: increase request progress timeout to 5 minutes
Apparently, 2 minutes are too short in some cases and can result in
canceled List requests.
2024-06-01 19:01:51 +02:00
Michael Eischer 2280fbfd2e
Merge pull request #4810 from konidev20/fix-gh-4768-add-custom-user-agent-for-http-client
Allow custom User-Agent to be specified for outgoing requests
2024-05-30 16:34:52 +00:00
Srigovind Nayak de7b418bbe http: allow custom `User-Agent` for outgoing HTTP requests 2024-05-30 15:38:06 +02:00
Michael Eischer c103c0830e add changelog for skip-if-unchanged 2024-05-30 15:25:44 +02:00
Michael Eischer 3828313974
Merge pull request #4821 from MichaelEischer/master
update `repair packs` changelog
2024-05-25 17:02:21 +02:00
Michael Eischer 04c181dbd0 update-repair-packs-changelog 2024-05-25 16:42:55 +02:00
Shivashis Padhi 0271bb97f8
check: enhance check command to create cache directory if it doesn't exist 2024-05-25 19:15:42 +05:30
Michael Eischer 130506250f document insecure-no-password 2024-05-24 22:38:20 +02:00
Michael Eischer 436afbff23 add changelog for memory efficient prune 2024-05-24 22:18:14 +02:00
Michael Eischer f680a2331d add changelog for streaming index rewrite 2024-05-24 21:33:17 +02:00
Michael Eischer 3cc6827f09 forget: add feature flag for safe --keep-tags behavior 2024-05-24 20:45:33 +02:00
Michael Eischer 3f46808898 add forget safety net changelogs 2024-05-24 20:45:33 +02:00
Michael Eischer 723247c8e5 add changelog for longer retries 2024-05-24 20:24:02 +02:00
Michael Eischer 5f23baabcc add retries for corrupted blobs to changelog 2024-05-18 23:03:24 +02:00
Maik Riechert 355f520936 Azure: add option to force use of CLI credential 2024-05-18 22:15:54 +02:00
Michael Eischer 53561474d9 update changelog with persistent backend error handling 2024-05-18 19:59:26 +02:00
aneesh-n 43bc304e42
Add unreleased changelog 2024-05-17 14:54:25 -06:00
Michael Eischer 7ed560a201
Merge pull request #4796 from MichaelEischer/parallel-dump-load
dump: Parallelize loading large files
2024-05-14 22:35:44 +02:00
Michael Eischer 92221c2a6d
Merge pull request #4708 from zmanda/windows-securitydesc
Back up and restore SecurityDescriptors on Windows
2024-05-12 14:14:39 +00:00
Michael Eischer b5fdb1d637
Merge pull request #4782 from MichaelEischer/fix-sftp-performance
Fix sftp upload performance
2024-05-12 15:28:33 +02:00
Michael Eischer 3740700ddc add http timeouts to changelog 2024-05-09 23:46:17 +02:00
Michael Eischer e184538ddf dump: add changelog 2024-05-05 12:12:21 +02:00
Michael Eischer ffe5439149
Merge pull request #4605 from MichaelEischer/better-restorer-error-handling
Rework repository.StreamPacks & better restorer error handling
2024-05-01 16:37:41 +02:00
Michael Eischer 676f0dc60d add changelog 2024-05-01 16:28:57 +02:00
aneesh-n 08c6945d61
Fix review comments 2024-04-29 16:21:38 -06:00
Aneesh N 3f76b902e5
Merge branch 'master' into windows-securitydesc 2024-04-29 14:40:34 -06:00
DRON-666 ccd35565ee
s/sec./seconds 2024-04-29 01:48:22 +03:00
DRON-666 5703e5a652 Fix texts and comments 2024-04-29 01:18:46 +03:00
DRON-666 739d3243d9 vss: Update docs and changelog 2024-04-28 22:45:21 +03:00
DRON-666 9182e6bab5 vss: Update docs and changelog 2024-04-28 22:44:16 +03:00
Michael Eischer a1d682ce0e add changelog for sftp performance fix 2024-04-28 11:58:08 +02:00
Michael Eischer 347e9d0765 complete RESITC_HOST environment handling & test 2024-04-24 21:52:39 +02:00
Altan Orhon 871ea1eaf3 Add support for specifying --host via environment variable
This commit adds support for specifying the `--host` option via the `RESTIC_HOST` environment variable. This is done by extending option processing in `cmd_backup.go` and for `restic.SnapshotFilter` in `find.go`.
2024-04-24 21:49:42 +02:00
Michael Eischer 2e6c43c695
Merge pull request #4761 from MichaelEischer/fix-cache-race
cache: ignore ErrNotExist during cleanup of old files
2024-04-22 21:46:06 +02:00
Michael Eischer 55d56db31b
Merge pull request #4743 from MichaelEischer/deprecate-s3legacy-layout
Deprecate s3legacy layout
2024-04-11 22:09:34 +02:00
Michael Eischer 591b421c4a Deprecate s3legacy layout 2024-04-10 21:27:56 +02:00
Michael Eischer bf054c09d2 backup: Ignore xattr.list permission error for parent directories
On FreeBSD, limited users may not be able to even list xattrs for the
parent directories above the snapshot source paths. As this can cause
the backup to fail, just ignore those errors.
2024-04-10 20:46:15 +02:00
Michael Eischer 0747cf5319 cache: ignore ErrNotExist during cleanup of old files
Two restic processes running concurrently can try to remove the same
files from the cache. This could cause one process to fail with an error
if the other one has already remove a file that the current process also
tries to delete.
2024-04-10 19:25:51 +02:00
Michael Eischer 9fb017e67a
Merge pull request #4745 from MichaelEischer/full-id-key-list
key list: include full key id in JSON output
2024-04-03 21:50:02 +02:00
Michael Eischer 6cca1d5705
Merge pull request #4655 from ae-govau/unixsocket
Enhancement: option to send HTTP over unix socket
2024-04-03 19:29:21 +00:00
Michael Eischer 5145c8f9c0 key list: include full key id in JSON output 2024-03-31 12:25:20 +02:00
Stephan Paul df07814ec2 forget json output: added id's in snapshots within reasons object
In order to evaluate the keep reasons for snapshots, there should be also the id's
to compare it with snapshots within the keep object. (See also Issue #3117)

In order to avoid output parameters also changed function addJSONSnapshots to asJSONSnapshots
2024-03-29 11:30:00 +01:00
Michael Eischer 07eb6c315b add changelog for locking refactor 2024-03-28 23:46:58 +01:00
Michael Eischer 7f9ad1c3db
Merge pull request #4705 from MichaelEischer/snapshot-statistics
Store snapshot statistics & print snapshot size
2024-03-28 22:41:45 +01:00
Michael Eischer cf81f8ced6 stats: only check for hardlinks for files with more than one link 2024-03-28 21:29:27 +01:00
Michael Eischer 21cf38fe96 add changelog for deviceID only for hardlinks 2024-03-28 19:32:50 +01:00
Michael Eischer 8876e3025b
Merge pull request #4724 from MichaelEischer/disable-old-index
Deprecated legacy index format
2024-03-28 18:24:47 +01:00
Michael Eischer 6ac7519188 add changelog for rest unix socket support 2024-03-28 17:41:41 +01:00
avoidalone ac948fccda fix some typos
Signed-off-by: avoidalone <wuguangdong@outlook.com>
2024-03-11 14:35:12 +08:00
Michael Eischer 98a6817d01 add changelog for legacy index deprecation 2024-03-09 18:35:00 +01:00
Michael Eischer fe68d2cafb add feature flag documentation 2024-03-09 17:29:52 +01:00
Aneesh Nireshwalia 5764300022
Add changelog and fix lint error 2024-02-24 13:47:49 -07:00
Aneesh Nireshwalia c0a1b9ada5
Update docs for security descriptors 2024-02-24 13:28:18 -07:00
Michael Eischer 6a13e451b1 document snapshot statistics 2024-02-23 22:32:04 +01:00
Aneesh Nireshwalia e8211cb64a
Add changelog and update docs for windows attr 2024-02-22 17:59:56 -07:00
Brian Harring b41107dcaf
Add changelog for SIGTERM bugfix.
Signed-off-by: Brian Harring <ferringb@gmail.com>
2024-02-19 11:31:48 +01:00
Michael Eischer 80754dbf0c
Merge pull request #4664 from MichaelEischer/ls-unified-json-output
ls: include standard `message_type` field in output
2024-02-18 15:47:41 +00:00
Michael Eischer 6fbb470835
Merge pull request #4665 from MichaelEischer/check-repair-packs
check: Suggest usage of `repair packs` if pack files are damaged
2024-02-17 15:54:07 +00:00
Michael Eischer 0a36d193d8 add changelog for enhanced repair packs 2024-02-12 21:43:35 +01:00
Michael Eischer 9e3703ded5 remove changelogs that are already included in restic 0.16.4 2024-02-12 20:39:31 +01:00
Michael Eischer 15d6fa1f83 dump: update docs for --target option 2024-02-10 18:39:06 +01:00
Srigovind Nayak 795d33b3ee key: move add, list, remove, passwd to sub-commands
docs: improve the sub-command docs

changelog: add the unreleased changelog for the key command updates

key: update integration tests
2024-02-06 01:47:43 +05:30
Michael Eischer f5ffa40652 dump: minor cleanups 2024-02-05 20:10:52 +01:00
Srigovind Nayak 175c14b5c9 dump: add --target option 2024-02-05 20:10:52 +01:00
Michael Eischer b63bfd2257 Merge branch 'patch-release' 2024-02-04 20:21:42 +01:00
Alexander Neumann 6cd2804bff Prepare changelog for 0.16.4 2024-02-04 19:50:34 +01:00
Michael Eischer a72c2b74f3 Apply changelog entry / documentation improvements from review 2024-02-04 19:10:06 +01:00
Michael Eischer 2a0bd2b637 rename `--no-verify-pack` to `--no-extra-verify` 2024-02-04 19:10:05 +01:00
Michael Eischer 4589da7eb9 add data verification changelog entry 2024-02-04 19:09:49 +01:00
Michael Eischer 29e1caf825 add changelog draft for data corruption on max compression 2024-02-04 19:05:51 +01:00
Michael Eischer d5e662315a
Merge pull request #4681 from MichaelEischer/verify-integrity-on-upload
backup: verify blobs before upload
2024-02-04 18:04:27 +00:00
Michael Eischer effe76aaf5
Merge pull request #4679 from MichaelEischer/workaround-compression-bug
Downgrade klauspost/compress to fix data corruption at max. compression
2024-02-04 18:03:34 +00:00
Michael Eischer 5957417b1f Apply changelog entry / documentation improvements from review 2024-02-04 18:55:41 +01:00
Michael Eischer 219d8e3c18 add changelog draft for data corruption on max compression 2024-02-04 18:11:48 +01:00
Michael Eischer 86b38a0b17 rename `--no-verify-pack` to `--no-extra-verify` 2024-02-04 17:01:05 +01:00
Michael Eischer 7d31180fe6 add data verification changelog entry 2024-02-04 15:48:11 +01:00
Michael Eischer eaf9659efc
Merge pull request #4657 from numerigraphe/fix-key-add-id
Properly report the ID of newly added keys
2024-01-31 20:59:41 +00:00
Lionel Sausin 8fbe328371 Properly report the ID of newly added keys
Other commands like key list and key remove show the key's ID.

Showing the ID here lets users easily reuse the ID as a key hint for subsequent
commands.
In particular, a key hint is needed when the repository has many keys - otherwise
opening the repository may fail with "Fatal: maximum number of keys reached" even
when a proper password is provided.

Fixes #4656
2024-01-29 10:12:49 +01:00
Michael Eischer 5dca8a70d5 ls: include standard `message_type` field in output 2024-01-27 15:48:24 +01:00
Nils Decker b2703a4089 add changelog for ls --ncdu 2024-01-27 13:17:15 +01:00
Michael Eischer 6cc2bec5dd apply suggestion from review 2024-01-23 19:09:04 +01:00
Michael Eischer 767c2539a0 backup: Improve help text for `--stdin-from-command` 2024-01-21 22:06:54 +01:00