Commit graph

7719 commits

Author SHA1 Message Date
Thomas Waldmann
e7de9dcdcb "auto" compressor tests: do not assume zlib is better than lz4, fixes #7363
while that might be true for many cases, we can not assume it is
always true, as proven by the failing test on S390.
2023-03-06 18:43:09 +01:00
TW
7ce0887070
Merge pull request #7401 from ThomasWaldmann/unicode-filenames-docs-master
update FAQ about locale/unicode issues, fixes #6999
2023-03-05 17:49:14 +01:00
TW
9f703e9138
Merge pull request #7403 from ThomasWaldmann/mount-docs-master
docs: improve mount options rendering, fixes #7359
2023-03-05 17:48:24 +01:00
TW
611e391da9
Merge pull request #7405 from ThomasWaldmann/fix-debug-cmds-master
fix borg debug get-obj/put-obj (master)
2023-03-04 22:20:54 +01:00
Thomas Waldmann
9a39b53828
debug put-obj: id must be given on commandline, fixes #7290
this is an incompatible change:

before:
borg debug put-obj path1 path2 ...
(and borg computed all IDs automatically) (*)

after:
borg debug put-obj id path
(id must be given)

(*) the code just using sha256(data) was outdated and incorrect anyway.

also: debug get-obj: improve error handling
2023-03-04 20:05:23 +01:00
Thomas Waldmann
1632d6305e
docs: improve mount options rendering, fixes #7359 2023-03-04 16:56:18 +01:00
Thomas Waldmann
23dcc18bec
update FAQ about locale/unicode issues, fixes #6999 2023-03-04 16:30:24 +01:00
TW
8027c7b284
Merge pull request #7396 from ThomasWaldmann/improve-platformdirs-docs
clarify platformdirs requirements, fixes #7393
2023-03-01 17:24:14 +01:00
Thomas Waldmann
85cc7418ca
clarify platformdirs requirements, fixes #7393
3.0.0 is only required for macOS due to breaking changes.

2.6.0 was the last breaking change for Linux/UNIX.
2023-03-01 13:18:12 +01:00
TW
e1fd24aa6e
Merge pull request #7394 from helmutg/reproducible-docs
Make timestamps in manual pages reproducible
2023-02-28 12:13:19 +01:00
Vagrant Cascadian
98352cf667 Make timestamps in manual pages reproducible
Refer to https://reproducible-builds.org/docs/source-date-epoch/ for
documentation on SOURCE_DATE_EPOCH.

Bug-Debian: https://bugs.debian.org/1029807
Signed-off-by: Helmut Grohne <helmut@subdivi.de>
2023-02-28 11:41:31 +01:00
TW
4b745f98c1
Merge pull request #7390 from ThomasWaldmann/rel200b5
release 2.0.0 beta 5
2023-02-27 01:20:15 +01:00
Thomas Waldmann
f06d3cc9c8
build_man 2023-02-26 21:32:44 +01:00
Thomas Waldmann
52b9f8e7e9
build_usage 2023-02-26 21:32:42 +01:00
Thomas Waldmann
1233b47878
sphinx: fix extlinks configuration
otherwise sphinx crashes.
2023-02-26 21:32:40 +01:00
Thomas Waldmann
03cb4d4124
update CHANGES, set release date
also minor other changes.
2023-02-26 21:32:32 +01:00
TW
437ee97e66
Merge pull request #7388 from diivi/feat/log-cache-dir
feat: add cache dir to --debug
2023-02-26 21:02:12 +01:00
TW
9710c8f0a6
Merge pull request #7389 from ThomasWaldmann/vagrant-updates
updates and fixes done while working with the VMs
2023-02-26 20:55:16 +01:00
Thomas Waldmann
a8792f466b
development.lock.txt: upgrade to more recent versions 2023-02-26 20:29:30 +01:00
Divyansh Singh
7dd186ccf3 feat: add cache dir to --debug 2023-02-26 23:48:35 +05:30
Thomas Waldmann
a3ab390e59
test_create_read_special_symlink: fix exception in test cleanup code on FreeBSD, fixes #7386 2023-02-26 19:10:39 +01:00
Thomas Waldmann
98338f4cc0
hfs+ filesystem (darwin64 VM) has 1s ts granularity, fixes #7387 2023-02-26 19:07:10 +01:00
Thomas Waldmann
6160c0918f
vagrant: add debian bookworm (debian testing) VM 2023-02-26 18:05:59 +01:00
Thomas Waldmann
dc773ffb81
vagrant: use Python 3.11.2 2023-02-26 18:03:24 +01:00
TW
b04b4438bf
Merge pull request #7385 from ThomasWaldmann/update-changes
update CHANGES
2023-02-26 02:31:58 +01:00
Thomas Waldmann
c8f5cab8b6
update CHANGES 2023-02-26 01:14:18 +01:00
TW
8f73f00fb5
Merge pull request #7384 from ThomasWaldmann/transfer-bugfix
transfer: fix exception in dry-run mode
2023-02-26 01:12:38 +01:00
Thomas Waldmann
2b935cfe41
transfer: fix exception in dry-run mode
Only call archive.stats.show_progress(final=True) if
we actually have an archive (== not in dry-run mode).
2023-02-26 00:41:13 +01:00
TW
4d44b7d439
Merge pull request #7381 from ThomasWaldmann/rtd-config2-master
readthedocs: don't create a pdf
2023-02-25 02:27:57 +01:00
Thomas Waldmann
79d125212d
readthedocs: don't create a pdf 2023-02-25 02:27:08 +01:00
TW
a96cba4ebd
Merge pull request #7380 from ThomasWaldmann/rtd-config-master
add .readthedocs.yaml
2023-02-25 02:17:03 +01:00
Thomas Waldmann
a40390b1ac
add .readthedocs.yaml
otherwise rtd uses:
- python 3.7, which is too old for borg.
- shallow git checkout, which might make setuptools_scm fail to create a correct version
2023-02-25 02:16:21 +01:00
Soumik Dutta
cad138aa23
Add files changed while reading to Statistics class #7354 (#7378)
add files changed while reading to Statistics class, fixes #7354

Signed-off-by: Soumik Dutta <shalearkane@gmail.com>
2023-02-25 01:47:39 +01:00
TW
b208785fff
Merge pull request #7351 from ThomasWaldmann/retry-failed-files
create: implement retries for individual fs files
2023-02-23 01:46:36 +01:00
Thomas Waldmann
7e6afc93e9
create: implement retries for individual fs files
Errors handled for backup src files:
- BackupOSError (converted from OSError), e.g. I/O Error
- BackupError (stats race, file changed while we backed it up)

Error Handling:
- retry the same file after some sleep time
- sleep time starts from 1ms, increases exponentially up to 10s
- 10 tries

If retrying does not help:
- BackupOSError: skip the file, log it with "E" status
- BackupError: last try will back it up, log it with "C" status

Works for:
- borg create's normal (builtin) fs recursion
- borg create --paths-from-command
- borg create --paths-from-stdin

Notes:
- update stats.files_stats late (so we don't get wrong
  stats in case of e.g. IOErrors while reading the file).
- _process_any: no changes to the big block, just indented
  for adding the retry loop and the try/except.
- test_create_erroneous_file succeeds because we retry the file.
2023-02-23 01:19:19 +01:00
TW
6da5b7d1ba
Merge pull request #7367 from ThomasWaldmann/new-crypto-assert-id
assert_id: better be paranoid, fixes #7362
2023-02-23 01:14:25 +01:00
TW
3f2aac8f00
Merge pull request #7368 from vhadzhiev/vhadzhiev_contribution
fixed Statistics.__add__(), fixes #7355
2023-02-20 18:07:21 +01:00
vhadzhiev
a08a3eb173 fixed Statistics.__add__(), fixes #7355 2023-02-20 11:25:28 +02:00
Thomas Waldmann
74a19ee2a0
verify_data: always decompress and call assert_id(), see #7362 2023-02-19 21:25:24 +01:00
Thomas Waldmann
fea630027c
assert_id: better be paranoid, fixes #7362
This makes borg2's new crypto do the same check as borg1's old crypto
and makes sure that no chunks created by an evil borg client would
go unnoticed.
2023-02-19 21:14:20 +01:00
TW
93a4bd61f8
Merge pull request #7360 from voegelas/fedora-package-url
Installation: Update Fedora in distribution list
2023-02-17 14:32:34 +01:00
Andreas Vögele
4b18980768 Installation: Update Fedora in distribution list
Fixes #7357
2023-02-16 18:27:48 +01:00
TW
3849ebe312
Merge pull request #7349 from ThomasWaldmann/avoid-orphan-content-chunks3
avoid orphan content chunks (master)
2023-02-14 00:01:50 +01:00
Thomas Waldmann
71f8dd3a17
FilesystemObjectProcessors.process_pipe: also add same exception handler there 2023-02-13 20:46:48 +01:00
Thomas Waldmann
c9dbe323e3
TarfileObjectProcessors.process_file: also add same exception handler there 2023-02-13 20:46:46 +01:00
Thomas Waldmann
d0c61bbbf1
FilesystemObjectProcessors.process_file: clean up orphaned chunks in case of exceptions
Note: no changes inside the indented block,
just added the try and the except block.
2023-02-13 20:46:45 +01:00
Thomas Waldmann
f1981715e4
2nd+ hardlinks: add to item.chunks after incref'ing
we do book-keeping in item.chunks:
in case something goes wrong and we need to clean up,
we will have a list with chunks to decref in item.chunks.

also:
- make variable naming more consistent
- cosmetic changes
2023-02-13 20:46:21 +01:00
Thomas Waldmann
5cb3a17796
Revert "avoid orphan content chunks on BackupOSError, fixes #6709"
This reverts commit ffe32316a5.
2023-02-13 18:24:28 +01:00
TW
6cfe77ebaf
Merge pull request #7350 from ThomasWaldmann/testing-chunker
implement "fail" chunker for testing purposes
2023-02-13 18:17:56 +01:00
Thomas Waldmann
11fd6afb0f
use "fail" chunker to test erroneous input file skipping
if a file can't be read (like here: there is a simulated
I/O error in the 2nd chunk of file2), it should be logged
with "E" status, skipped and backup shall proceed with
next file(s).

also, check that the repo has no orphan chunks (exception
handling code needs to deal with 1st chunk of file2 which
already has been written / incref'd in the repo).
2023-02-13 17:19:49 +01:00