mirror of
https://github.com/restic/restic.git
synced 2025-10-19 15:43:21 +00:00
Merge branch 'patch-release'
This commit is contained in:
commit
f091e6aed0
12 changed files with 135 additions and 35 deletions
101
CHANGELOG.md
101
CHANGELOG.md
|
@ -1,5 +1,6 @@
|
||||||
# Table of Contents
|
# Table of Contents
|
||||||
|
|
||||||
|
* [Changelog for 0.18.1](#changelog-for-restic-0181-2025-09-21)
|
||||||
* [Changelog for 0.18.0](#changelog-for-restic-0180-2025-03-27)
|
* [Changelog for 0.18.0](#changelog-for-restic-0180-2025-03-27)
|
||||||
* [Changelog for 0.17.3](#changelog-for-restic-0173-2024-11-08)
|
* [Changelog for 0.17.3](#changelog-for-restic-0173-2024-11-08)
|
||||||
* [Changelog for 0.17.2](#changelog-for-restic-0172-2024-10-27)
|
* [Changelog for 0.17.2](#changelog-for-restic-0172-2024-10-27)
|
||||||
|
@ -39,6 +40,106 @@
|
||||||
* [Changelog for 0.6.0](#changelog-for-restic-060-2017-05-29)
|
* [Changelog for 0.6.0](#changelog-for-restic-060-2017-05-29)
|
||||||
|
|
||||||
|
|
||||||
|
# Changelog for restic 0.18.1 (2025-09-21)
|
||||||
|
The following sections list the changes in restic 0.18.1 relevant to
|
||||||
|
restic users. The changes are ordered by importance.
|
||||||
|
|
||||||
|
## Summary
|
||||||
|
|
||||||
|
* Fix #5324: Correctly handle `backup --stdin-filename` with directory paths
|
||||||
|
* Fix #5325: Accept `RESTIC_HOST` environment variable in `forget` command
|
||||||
|
* Fix #5342: Ignore "chmod not supported" errors when writing files
|
||||||
|
* Fix #5344: Ignore `EOPNOTSUPP` errors for extended attributes
|
||||||
|
* Fix #5421: Fix rare crash if directory is removed during backup
|
||||||
|
* Fix #5429: Stop retrying uploads when rest-server runs out of space
|
||||||
|
* Fix #5467: Improve handling of download retries in `check` command
|
||||||
|
|
||||||
|
## Details
|
||||||
|
|
||||||
|
* Bugfix #5324: Correctly handle `backup --stdin-filename` with directory paths
|
||||||
|
|
||||||
|
In restic 0.18.0, the `backup` command failed if a filename that includes at
|
||||||
|
least a directory was passed to `--stdin-filename`. For example,
|
||||||
|
`--stdin-filename /foo/bar` resulted in the following error:
|
||||||
|
|
||||||
|
```
|
||||||
|
Fatal: unable to save snapshot: open /foo: no such file or directory
|
||||||
|
```
|
||||||
|
|
||||||
|
This has now been fixed.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/5324
|
||||||
|
https://github.com/restic/restic/pull/5356
|
||||||
|
|
||||||
|
* Bugfix #5325: Accept `RESTIC_HOST` environment variable in `forget` command
|
||||||
|
|
||||||
|
The `forget` command did not use the host name from the `RESTIC_HOST`
|
||||||
|
environment variable when filtering snapshots. This has now been fixed.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/5325
|
||||||
|
https://github.com/restic/restic/pull/5327
|
||||||
|
|
||||||
|
* Bugfix #5342: Ignore "chmod not supported" errors when writing files
|
||||||
|
|
||||||
|
Restic 0.18.0 introduced a bug that caused `chmod xxx: operation not supported`
|
||||||
|
errors to appear when writing to a local file repository that did not support
|
||||||
|
chmod (like CIFS or WebDAV mounted via FUSE). Restic now ignores those errors.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/5342
|
||||||
|
|
||||||
|
* Bugfix #5344: Ignore `EOPNOTSUPP` errors for extended attributes
|
||||||
|
|
||||||
|
Restic 0.18.0 added extended attribute support for NetBSD 10+, but not all
|
||||||
|
NetBSD filesystems support extended attributes. Other BSD systems can likewise
|
||||||
|
return `EOPNOTSUPP`, so restic now ignores these errors.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/5344
|
||||||
|
|
||||||
|
* Bugfix #5421: Fix rare crash if directory is removed during backup
|
||||||
|
|
||||||
|
In restic 0.18.0, the `backup` command could crash if a directory was removed
|
||||||
|
between reading its metadata and listing its directory content. This has now
|
||||||
|
been fixed.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/pull/5421
|
||||||
|
|
||||||
|
* Bugfix #5429: Stop retrying uploads when rest-server runs out of space
|
||||||
|
|
||||||
|
When rest-server returns a `507 Insufficient Storage` error, it indicates that
|
||||||
|
no more storage capacity is available. Restic now correctly stops retrying
|
||||||
|
uploads in this case.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/5429
|
||||||
|
https://github.com/restic/restic/pull/5452
|
||||||
|
|
||||||
|
* Bugfix #5467: Improve handling of download retries in `check` command
|
||||||
|
|
||||||
|
In very rare cases, the `check` command could unnecessarily report repository
|
||||||
|
damage if the backend returned incomplete, corrupted data on the first download
|
||||||
|
try which is afterwards resolved by a download retry.
|
||||||
|
|
||||||
|
This could result in an error output like the following:
|
||||||
|
|
||||||
|
```
|
||||||
|
Load(<data/34567890ab>, 33918928, 0) returned error, retrying after 871.35598ms: readFull: unexpected EOF
|
||||||
|
Load(<data/34567890ab>, 33918928, 0) operation successful after 1 retries
|
||||||
|
check successful on second attempt, original error pack 34567890ab[...] contains 6 errors: [blob 12345678[...]: decrypting blob <data/12345678> from 34567890 failed: ciphertext verification failed ...]
|
||||||
|
[...]
|
||||||
|
Fatal: repository contains errors
|
||||||
|
```
|
||||||
|
|
||||||
|
This fix only applies to a very specific case where the log shows `operation
|
||||||
|
successful after 1 retries` followed by a `check successful on second attempt,
|
||||||
|
original error` that only reports `ciphertext verification failed` errors in the
|
||||||
|
pack file. If any other errors are reported in the pack file, then the
|
||||||
|
repository still has to be considered as damaged.
|
||||||
|
|
||||||
|
Now, only the check result of the last download retry is reported as intended.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/5467
|
||||||
|
https://github.com/restic/restic/pull/5495
|
||||||
|
|
||||||
|
|
||||||
# Changelog for restic 0.18.0 (2025-03-27)
|
# Changelog for restic 0.18.0 (2025-03-27)
|
||||||
The following sections list the changes in restic 0.18.0 relevant to
|
The following sections list the changes in restic 0.18.0 relevant to
|
||||||
restic users. The changes are ordered by importance.
|
restic users. The changes are ordered by importance.
|
||||||
|
|
2
VERSION
2
VERSION
|
@ -1 +1 @@
|
||||||
0.18.0-dev
|
0.18.1-dev
|
||||||
|
|
|
@ -1,14 +1,14 @@
|
||||||
Bugfix: Correctly handle `backup --stdin-filename` with directories
|
Bugfix: Correctly handle `backup --stdin-filename` with directory paths
|
||||||
|
|
||||||
In restic 0.18.0, the `backup` command failed if a filename that includes
|
In restic 0.18.0, the `backup` command failed if a filename that includes
|
||||||
a least a directory was passed to `--stdin-filename`. For example,
|
at least a directory was passed to `--stdin-filename`. For example,
|
||||||
`--stdin-filename /foo/bar` resulted in the following error:
|
`--stdin-filename /foo/bar` resulted in the following error:
|
||||||
|
|
||||||
```
|
```
|
||||||
Fatal: unable to save snapshot: open /foo: no such file or directory
|
Fatal: unable to save snapshot: open /foo: no such file or directory
|
||||||
```
|
```
|
||||||
|
|
||||||
This has been fixed now.
|
This has now been fixed.
|
||||||
|
|
||||||
https://github.com/restic/restic/issues/5324
|
https://github.com/restic/restic/issues/5324
|
||||||
https://github.com/restic/restic/pull/5356
|
https://github.com/restic/restic/pull/5356
|
|
@ -1,7 +1,7 @@
|
||||||
Bugfix: Correctly handle `RESTIC_HOST` in `forget` command
|
Bugfix: Accept `RESTIC_HOST` environment variable in `forget` command
|
||||||
|
|
||||||
The `forget` command did not use the host name from the `RESTIC_HOST`
|
The `forget` command did not use the host name from the `RESTIC_HOST`
|
||||||
environment variable. This has been fixed.
|
environment variable when filtering snapshots. This has now been fixed.
|
||||||
|
|
||||||
https://github.com/restic/restic/issues/5325
|
https://github.com/restic/restic/issues/5325
|
||||||
https://github.com/restic/restic/pull/5327
|
https://github.com/restic/restic/pull/5327
|
|
@ -1,6 +1,6 @@
|
||||||
Bugfix: Ignore "chmod not supported" errors when writing files
|
Bugfix: Ignore "chmod not supported" errors when writing files
|
||||||
|
|
||||||
Restic 0.18.0 introduced a bug that caused "chmod xxx: operation not supported"
|
Restic 0.18.0 introduced a bug that caused `chmod xxx: operation not supported`
|
||||||
errors to appear when writing to a local file repository that did not support
|
errors to appear when writing to a local file repository that did not support
|
||||||
chmod (like CIFS or WebDAV mounted via FUSE). Restic now ignores those errors.
|
chmod (like CIFS or WebDAV mounted via FUSE). Restic now ignores those errors.
|
||||||
|
|
7
changelog/0.18.1_2025-09-21/issue-5344
Normal file
7
changelog/0.18.1_2025-09-21/issue-5344
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
Bugfix: Ignore `EOPNOTSUPP` errors for extended attributes
|
||||||
|
|
||||||
|
Restic 0.18.0 added extended attribute support for NetBSD 10+, but not all
|
||||||
|
NetBSD filesystems support extended attributes. Other BSD systems can
|
||||||
|
likewise return `EOPNOTSUPP`, so restic now ignores these errors.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/5344
|
8
changelog/0.18.1_2025-09-21/issue-5429
Normal file
8
changelog/0.18.1_2025-09-21/issue-5429
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
Bugfix: Stop retrying uploads when rest-server runs out of space
|
||||||
|
|
||||||
|
When rest-server returns a `507 Insufficient Storage` error, it indicates
|
||||||
|
that no more storage capacity is available. Restic now correctly stops
|
||||||
|
retrying uploads in this case.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/5429
|
||||||
|
https://github.com/restic/restic/pull/5452
|
|
@ -1,10 +1,11 @@
|
||||||
Bugfix: Improve handling of download retries in `check` command
|
Bugfix: Improve handling of download retries in `check` command
|
||||||
|
|
||||||
In very rare cases, the `check` command could unnecessarily report a
|
In very rare cases, the `check` command could unnecessarily report repository
|
||||||
repository damage if the backend returns incomplete, corrupted data on
|
damage if the backend returned incomplete, corrupted data on the first download
|
||||||
the first download try which is resolved by a download retry.
|
try which is afterwards resolved by a download retry.
|
||||||
|
|
||||||
This could result in an error output like the following:
|
This could result in an error output like the following:
|
||||||
|
|
||||||
```
|
```
|
||||||
Load(<data/34567890ab>, 33918928, 0) returned error, retrying after 871.35598ms: readFull: unexpected EOF
|
Load(<data/34567890ab>, 33918928, 0) returned error, retrying after 871.35598ms: readFull: unexpected EOF
|
||||||
Load(<data/34567890ab>, 33918928, 0) operation successful after 1 retries
|
Load(<data/34567890ab>, 33918928, 0) operation successful after 1 retries
|
||||||
|
@ -13,15 +14,14 @@ check successful on second attempt, original error pack 34567890ab[...] contains
|
||||||
Fatal: repository contains errors
|
Fatal: repository contains errors
|
||||||
```
|
```
|
||||||
|
|
||||||
This fix only applies to a very specific case. The required condition is
|
This fix only applies to a very specific case where the log shows
|
||||||
a `operation successful after 1 retries` error in the log, later followed by
|
`operation successful after 1 retries` followed by a
|
||||||
a `check successful on second attempt, original error` error that only reports
|
`check successful on second attempt, original error` that only reports
|
||||||
`ciphertext verification failed` errors in the pack file. If any other errors
|
`ciphertext verification failed` errors in the pack file. If any other errors
|
||||||
are reported in the pack file, then the repository still has to be considered
|
are reported in the pack file, then the repository still has to be considered
|
||||||
as damaged.
|
as damaged.
|
||||||
|
|
||||||
Now, only the check result of the last download retry is reported as
|
Now, only the check result of the last download retry is reported as intended.
|
||||||
intended.
|
|
||||||
|
|
||||||
https://github.com/restic/restic/issues/5467
|
https://github.com/restic/restic/issues/5467
|
||||||
https://github.com/restic/restic/pull/5495
|
https://github.com/restic/restic/pull/5495
|
|
@ -1,8 +1,7 @@
|
||||||
Bugfix: Fix rare crash if directory is removed during backup
|
Bugfix: Fix rare crash if directory is removed during backup
|
||||||
|
|
||||||
In restic 0.18.0, the `backup` command could crash if a directory is removed
|
In restic 0.18.0, the `backup` command could crash if a directory was removed
|
||||||
inbetween reading its metadata and listing its directory content.
|
between reading its metadata and listing its directory content. This has now
|
||||||
|
been fixed.
|
||||||
This has been fixed.
|
|
||||||
|
|
||||||
https://github.com/restic/restic/pull/5421
|
https://github.com/restic/restic/pull/5421
|
|
@ -1,7 +0,0 @@
|
||||||
Bugfix: Ignore EOPNOTSUPP as an error for xattr
|
|
||||||
|
|
||||||
Restic 0.18.0 added xattr support for NetBSD 10+, but not all NetBSD
|
|
||||||
filesystems support xattrs. Other BSD systems can likewise return
|
|
||||||
EOPNOTSUPP, so restic now simply ignores EOPNOTSUPP errors for xattrs.
|
|
||||||
|
|
||||||
https://github.com/restic/restic/issues/5344
|
|
|
@ -1,8 +0,0 @@
|
||||||
Bugfix: do not retry if rest-server runs out of space
|
|
||||||
|
|
||||||
Rest-server return error `507 Insufficient Storage` if no more storage
|
|
||||||
capacity is available at the server. Restic now no longer retries uploads
|
|
||||||
in this case.
|
|
||||||
|
|
||||||
https://github.com/restic/restic/issues/5429
|
|
||||||
https://github.com/restic/restic/pull/5452
|
|
|
@ -44,7 +44,7 @@ import (
|
||||||
// to a missing backend storage location or config file
|
// to a missing backend storage location or config file
|
||||||
var ErrNoRepository = errors.New("repository does not exist")
|
var ErrNoRepository = errors.New("repository does not exist")
|
||||||
|
|
||||||
var version = "0.18.0-dev (compiled manually)"
|
var version = "0.18.1-dev (compiled manually)"
|
||||||
|
|
||||||
// TimeFormat is the format used for all timestamps printed by restic.
|
// TimeFormat is the format used for all timestamps printed by restic.
|
||||||
const TimeFormat = "2006-01-02 15:04:05"
|
const TimeFormat = "2006-01-02 15:04:05"
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue