Srigovind Nayak
e65ee3cba8
fix: keep the PutBlock Size to 100 MiB
...
No complaints in the past.
2025-10-05 21:41:26 +05:30
Srigovind Nayak
34a94afc48
azure: update upload size constants to reduce memory allocation
2025-10-05 21:41:25 +05:30
Srigovind Nayak
9bcd09bde0
azure: reduce singleBlockMaxSize to accommodate 32-bit systems
2025-10-05 21:41:25 +05:30
Srigovind Nayak
e80e832130
azure: remove saveSmall, use only PutBlob API
2025-10-05 21:41:25 +05:30
Srigovind Nayak
dd2d562b7b
azure: enhanced upload with single PutBlob API and configurable upload methods
2025-10-05 21:41:25 +05:30
Michael Eischer
30ed992af9
termstatus: flush output before returning OutputRaw() writer
...
This prevents mangling the output due to delayed messages.
2025-10-05 16:14:16 +02:00
Michael Eischer
f17027eeaa
termstatus: flush before reading password from terminal
2025-10-04 23:06:57 +02:00
Christopher Loessl
f3d95893b2
feat(backup): add possibility to exclude macOS cloud-only files
2025-10-04 19:22:51 +02:00
Michael Eischer
4759e58994
Reduce terminal progress fps to 10
2025-10-04 17:34:40 +02:00
Michael Eischer
b7bbb408ee
check: refactor pack selection for read data
...
Drop the `packs` map from the internal state of the checker. Instead the
Packs(...) method now calls a filter callback that can select the
packs intended for checking.
2025-10-03 23:45:05 +02:00
Rani
3ae6a69154
Bugfix(sftp): fix loose permissions on sftp backend. ( #5497 )
2025-10-03 18:20:52 +00:00
Michael Eischer
264cd67c36
Merge pull request #5532 from MichaelEischer/checker-cleanup
...
Replace Repository.SetIndex with internal helper
2025-10-03 20:08:14 +02:00
Michael Eischer
fd241b8ec7
Merge pull request #5527 from MichaelEischer/drop-s3-static-credentials
...
s3: drop manual credentials loading from environment
2025-10-03 19:57:55 +02:00
Michael Eischer
aae1acf4d7
check: fix dysfunctional test cases
2025-10-03 19:49:51 +02:00
Michael Eischer
4426dfe6a9
repository: replace SetIndex method with internal loadIndexWithCallback method
2025-10-03 19:36:57 +02:00
Michael Eischer
f0955fa931
repository: add Checker() method to repository to replace unchecked cast
2025-10-03 19:34:33 +02:00
Michael Eischer
189b295c30
repository: add dedicated test helper
2025-10-03 19:34:33 +02:00
Michael Eischer
82971ad7f0
check: split index/pack check into repository package
2025-10-03 19:34:32 +02:00
Michael Eischer
bfc2ce97fd
check: don't keep extra MasterIndex reference
2025-10-03 19:32:15 +02:00
Michael Eischer
70a24cca85
ignore linter warning
2025-10-03 19:10:40 +02:00
Michael Eischer
56ac8360c7
data: split node and snapshot code from restic package
2025-10-03 19:10:39 +02:00
Michael Eischer
c85b157e0e
restic: move interfaces between files to prepare refactor
2025-10-03 19:06:32 +02:00
Michael Eischer
d8da3d2f2d
termstatus: increase test coverage
2025-10-03 18:55:46 +02:00
Michael Eischer
df7924f4df
node: report error on xattr retrieval using standard error logging
2025-10-03 18:55:46 +02:00
Michael Eischer
f2b9ea6455
termstatus: use errWriter if terminal commands fail
2025-10-03 18:55:46 +02:00
Michael Eischer
f045297348
termstatus: fix typo in comment
2025-10-03 18:55:46 +02:00
Michael Eischer
52eb66929f
repository: deduplicate index progress bar initializaton
2025-10-03 18:55:46 +02:00
Michael Eischer
b459d66288
termstatus: additional comments
2025-10-03 18:55:46 +02:00
Michael Eischer
76b2cdd4fb
replace globalOptions.stdout with termstatus.OutputWriter
2025-10-03 18:55:46 +02:00
Michael Eischer
c293736841
drop unused stderr from GlobalOptions
2025-10-03 18:55:46 +02:00
Michael Eischer
1939cff334
restore: embed progress.Printer in restore-specific printer
2025-10-03 18:55:46 +02:00
Michael Eischer
1a76f988ea
backup: embed progress.Printer in backup specific printer
2025-10-03 18:55:46 +02:00
Michael Eischer
e753941ad3
move NewProgressPrinter to ui package
2025-10-03 18:55:46 +02:00
Michael Eischer
ff5a0cc851
termstatus: fully wrap reading password from terminal
2025-10-03 18:55:46 +02:00
Michael Eischer
96af35555a
termstatus: add stdin and inject into backup command
2025-10-03 18:55:46 +02:00
Michael Eischer
ca5b0c0249
get rid of fmt.Print* usages
2025-10-03 18:55:46 +02:00
Michael Eischer
3410808dcf
deduplicate termstatus setup
2025-10-03 18:55:46 +02:00
Michael Eischer
1ae2d08d1b
termstatus: centralize OutputIsTerminal checks
2025-10-03 18:55:46 +02:00
Michael Eischer
c745e4221e
termstatus: use errWriter instead of os.Stderr
2025-10-03 18:22:42 +02:00
Michael Eischer
b6c50662da
repository: don't ignore cache clearing error
2025-10-03 18:22:42 +02:00
Michael Eischer
4dc71f24c5
backends: pass error logger to backends
2025-10-03 18:22:42 +02:00
Michael Eischer
6bd85d2412
reduce usages of globalOptions variable
2025-10-03 18:22:42 +02:00
Michael Eischer
eb13789b2b
Merge pull request #5528 from MichaelEischer/cleanup-fatalf-usage
...
Cleanup fatalf usage
2025-10-01 20:17:30 +02:00
Michael Eischer
1c7bb15327
Merge pull request #5451 from greatroar/concurrency
...
Concurrency simplifications
2025-09-24 22:22:40 +02:00
Michael Eischer
d491c1bdbf
use errors.Fatalf instead of custom formatting
2025-09-24 22:11:54 +02:00
Michael Eischer
4edfd36c8f
Merge pull request #5363 from zmanda/fix-gh-5258-backup-exits-with-wrong-code-on-ctrl-c
...
bugfix: fatal errors do not keep underlying error
2025-09-24 22:04:38 +02:00
Michael Eischer
a30a36ca51
s3: drop manual credentials loading from environment
...
credentials.EnvAWS offers a superset of the manually implemented
credentials loading. Rework the error message that is shown if no
credentials were found but either access or secret key are set.
2025-09-24 21:02:02 +02:00
dmotte
9017fefddd
internal/archiver: fixed BackupEnd when SkipIfUnchanged is true
2025-09-23 03:07:30 +02:00
Michael Eischer
3f7121e180
backup: adapt test to changed error message
2025-09-21 22:59:59 +02:00
Michael Eischer
08443fe593
Merge pull request #5405 from restic/dependabot/github_actions/golangci/golangci-lint-action-8
...
build(deps): bump golangci/golangci-lint-action from 6 to 8
2025-09-21 22:37:26 +02:00
Michael Eischer
daeb55a4fb
Merge pull request #5511 from greatroar/atomic
...
ui/progress: Restore atomics in Counter
2025-09-21 22:29:40 +02:00
Michael Eischer
7257cd2e5f
extra linters
2025-09-21 22:24:35 +02:00
Michael Eischer
88bdf20bd8
Reduce linter ignores
2025-09-21 22:24:27 +02:00
Michael Eischer
60d80a6127
Fix linter warnings
2025-09-21 22:24:15 +02:00
Michael Eischer
65b21e3348
ui: collect Quote and Truncate helpers
...
Collect ui formatting helpers in the ui package
2025-09-21 16:44:23 +02:00
Michael Eischer
86ddee8518
ui: document Message / Printer / Terminal interfaces
2025-09-21 16:32:00 +02:00
greatroar
a8f506ea4d
ui/progress: Simplify Updater
...
Removed a defer'd call that was a bit subtle.
2025-09-16 09:56:33 +02:00
greatroar
0a1ce4f207
ui/progress: Restore atomics in Counter
...
We switched from atomics to a mutex in #3189 because of an alignment
bug, but the new-style atomic types don't need manual alignment.
2025-09-16 09:49:48 +02:00
Michael Eischer
94b19d64be
termstatus: allow retrieving the underlying writer
...
This is intended for special cases where it must be guaranteed that the
output on stdout exactly matches what was written to the io.Writer.
2025-09-15 22:17:26 +02:00
Michael Eischer
03600ca509
termstatus: don't buffer stdout
...
There's not much use in doing so as nearly every write call was paired
with a flush call. Thus, just use an unbuffered writer.
2025-09-15 21:22:07 +02:00
Michael Eischer
91ecac8003
termstatus: fix crash when printing empty string
2025-09-15 20:25:17 +02:00
Michael Eischer
32b7168a9e
centralize index progress bar for termstatus
2025-09-15 20:25:17 +02:00
Michael Eischer
81fe559222
Merge pull request #5495 from MichaelEischer/fix-check-retries
...
check: fix error reporting on download retry
2025-09-15 19:31:44 +02:00
Michael Eischer
d757e39992
make linter happy
2025-09-13 22:22:53 +02:00
Srigovind Nayak
ce089f7e2d
errors: standardize error wrapping for Fatal errors
...
* replace all occurences of `errors.Fatal(err.Error())` with `errors.Fatalf("%s", err)` so that the error wrapping is correct across the codebase
* updated the review comments
2025-09-13 23:32:40 +05:30
Srigovind Nayak
18b8f8870f
tests: add tests for preserving underlying errors
2025-09-13 23:32:39 +05:30
Srigovind Nayak
79c41966af
errors: enhance fatalError type to include underlying errors
2025-09-13 23:32:39 +05:30
Michael Eischer
de29d74707
check: fix error reporting on download retry
2025-09-08 11:45:28 +02:00
Michael Eischer
b71b77fa77
terminal: unexport tcgetpgrp, tcsetpgrp and getpgrp
2025-09-08 11:04:38 +02:00
Michael Eischer
d10bd1d321
terminal: move reading password from terminal here
2025-09-08 11:03:56 +02:00
Michael Eischer
43b5166de8
terminal: cleanup determining width
2025-09-08 11:03:42 +02:00
Michael Eischer
0b0dd07f15
consolidate checks whether stdin/stdout is terminal
2025-09-08 11:03:26 +02:00
Michael Eischer
93ccc548c8
termstatus: move cursor handling to terminal package
2025-09-08 11:03:17 +02:00
Michael Eischer
0ab38faa2e
termstatus: track current status also in background
...
Without this, restic could temporarily print an outdated status when
moving back into the foreground.
2025-09-08 10:50:53 +02:00
Michael Eischer
48cbbf9651
ui/termstatus: extract background handling code
2025-09-08 10:50:09 +02:00
Michael Eischer
6ff7cd9050
backend/util: extract background handling code
2025-09-08 10:42:35 +02:00
greatroar
1ed93bd54d
backend,termstatus: Unify foreground/background detection
...
PR #5358 reintroduced a version of the TIOCGPGRP ioctl call that works
on all Unix platforms except Linux, due to a bug/inconsistency in
x/sys/unix. This commit fixes that by introducing termstatus.Tcgetpgrp.
It also introduces termstatus.Getpgrp and termstatus.Tcsetpgrp to deal
with the different signature of unix.Getpgrp in Solaris vs. all other
Unix platforms and an int-overflowing constant on AIX, so that some
AIX/Solaris-specific code can be removed elsewhere and
foreground/background detection is done the same everywhere except on
Windows.
2025-09-08 09:33:44 +02:00
Michael Eischer
914bd699be
backend: always start backend process in separate process group
...
The process group is necessary to properly handle ctrl-c.
2025-09-06 19:51:10 +02:00
Michael Eischer
4c19d6410f
backend: only move child process to foreground if already in foreground
...
The rclone and sftp backends require starting a child process. The are
first moved into the foreground and back into the background after the
initial startup is done.
However, this behavior is also active if restic itself is started in the
background. In this case, restic changing the foreground process may
confuse the shell and in case of bash causes it to exit. Thus, disable
modification of the controlling process group of the tty if restic is
run in the background.
2025-09-06 19:51:10 +02:00
Michael Eischer
2ad703bfd8
Merge pull request #5486 from greatroar/duration-panic
...
Avoid panic in duration parsing
2025-09-06 18:32:36 +02:00
greatroar
0864d04c5c
internal/restic: Fix panic in ParseDuration
...
Fixes #5485 . Includes test case by @MichaelEischer.
2025-09-06 10:30:34 +02:00
gregoster
839c38b4c4
EOPNOTSUPP can be returned if the filesystem does not support xattrs ( #5344 )
...
---------
Co-authored-by: Greg Oster <oster@netbsd.org>
2025-09-05 19:09:27 +00:00
Michael Eischer
01bc60e96f
backup: fix test on windows
2025-09-05 19:35:25 +02:00
Michael Eischer
350f6452e7
backup: test that parent directory errors can be correctly filtered
2025-09-05 19:28:18 +02:00
Michael Eischer
484cdf12e5
backup: test that missing parent directory is correctly handled
2025-09-05 19:28:18 +02:00
Michael Eischer
c8bb7bd312
backup: do not fail backup is some parent folder is inaccessible
...
Handle errors for parent directories of backup directories in the same
way as all other file access errors during a backup.
2025-09-05 19:28:18 +02:00
Michael Eischer
a8ce2e45cc
backup: do not crash if nodeFromFileInfo fails
...
this could crash in two cases:
- if a directory is deleted between restic stating it and trying to list
its directory content.
- when restic tries to list the parent directory of a backup target, but
the parent directory has been deleted.
return an error in this case instead.
2025-09-05 19:28:18 +02:00
Dominik Schulz
48e5c0984e
Mark HTTP Error 507 as permanent
...
This change classifies HTTP error 507 (Insufficient Storage) as a
permanent error that should not be retried. I keep running into
this once in a while and there is literally no point in retrying when
the server is full.
Fixes #5429
Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org>
2025-09-05 19:04:16 +02:00
Michael Eischer
b71fe91643
Merge pull request #5345 from mikix/chmod-enotsup
...
backend/local: ignore chmod "not supported" errors
2025-07-21 22:28:53 +02:00
Michael Eischer
3433c5abac
Merge pull request #5408 from MichaelEischer/fix-walker-crash
...
walker: fix error handling if tree cannot be loaded
2025-07-21 21:46:59 +02:00
greatroar
f7f6459eb9
internal/restic: Simplify ParallelRemove
2025-07-19 12:55:40 +02:00
greatroar
95a36b55f4
internal/dump: Clarify writeNode concurrency
2025-07-19 12:54:41 +02:00
greatroar
2c39b1f84f
internal/repository/index: Simplify MasterIndex concurrency
2025-07-18 15:06:37 +02:00
Michael Terry
a8535aba58
backend/local: ignore chmod "not supported" errors
2025-06-02 17:44:30 -04:00
Michael Eischer
e4a7f4aadf
Merge pull request #5356 from MichaelEischer/fix-backup-stdin-filename
...
backup: Fix `--stdin-filename` with directory
2025-06-02 20:27:26 +02:00
Michael Eischer
10cfe96cd4
walker: fix error handling if tree cannot be loaded
...
A tree that cannot be loaded is a fatal error when walking the tree.
Thus, return the error and exit the tree walk.
2025-06-02 20:04:26 +02:00
Michael Eischer
9f39e8a1d3
fs/reader: return proper error on invalid filename
2025-04-11 22:07:31 +02:00
Michael Eischer
ddd48f1e98
fs/reader: test file not exist case
2025-04-11 21:57:45 +02:00
Michael Eischer
6e91ea3397
fs/reader: use test helpers
2025-04-11 21:54:15 +02:00
Michael Eischer
e7c1e4f1ff
fs/reader: deduplicate test code
2025-04-11 21:50:47 +02:00