Merge branch 'patch-release'

This commit is contained in:
Michael Eischer 2025-09-21 21:20:56 +02:00
commit f091e6aed0
12 changed files with 135 additions and 35 deletions

View file

@ -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.

View file

@ -1 +1 @@
0.18.0-dev 0.18.1-dev

View file

@ -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

View file

@ -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

View file

@ -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.

View 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

View 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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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"