Binaries can be downloaded from Release Duplicacy Command Line Version 3.1.0 · gilbertchen/duplicacy · GitHub
- Updated
github.com/minio/highwayhash
to 1.02 to fix incorrect hashes for Erasure Coding on arm64 [1]: Upgrade github.com/minio/highwayhash to 1.0.2 · gilbertchen/duplicacy@6a7a2c8 · GitHub - Add -rewrite to the check command to fix corrupted chunks with Erasure Coding enabled:
- Fixed a bug that didn’t preserve the version bit when copying snapshots in the old V2 format [2]: Fixed a bug that didn't preserve the version bit when copying old sna… · gilbertchen/duplicacy@58f0d2b · GitHub
- Use the updated access token after a token refresh in the dropbox backend: Need to update the auth header after token change. · gilbertchen/go-dropbox@60ebcdb · GitHub (by @stuckj)
Add -rewrite to the check command to fix corrupted chunks · gilbertchen/duplicacy@bc2d762 · GitHub - Fixed a chunk leak with
check -files
: Release the chunk used to download files when finished · gilbertchen/duplicacy@b8c7594 · GitHub - Fixed 2 bugs that are results of handling zero-byte files incorrectly: Handle zero-byte files correctly · gilbertchen/duplicacy@3472206 · GitHub
Notes:
[1] The highwayhash is only used to calculate the checksum of each shard in Erasure Coding and not used anywhere else. So you are affected by this bug only if you enable Erasure Coding on arm64 machines. This bug is present in both 3.0.1 and 2.7.2 versions of the macOS m1 builds, and only in 3.0.1 of the linux arm64 builds.
In this release both the correct and incorrect versions of the highwayhash will be calculated so there is no need to fix existing storages, but you can use the newly added -rewrite
option to rewrite affected chunks using the correct version of the hash if desired.
[2] If you are using 3.0.1 to copy snapshots created with 2.7.2 or earlier, this bug will affect you. In 3.0.1, the version bit (0 for V2 snapshots and 1 for V3 snapshots) was the only flag used to determine the format of a snapshot. However, in this release, the first byte of the snapshot file is also used to distinguish between V2 and V3 formats. As a result, there is no need to rewrite V2 snapshots that were already copied with the incorrect version bit.