你好
刚刚更新到restic 0.9,发现restic现在报告了我现有存储库的错误(对于0.8.3来说还可以,并且升级后未更改):
error for tree e5457a72:
tree e5457a72: file "mail.err": metadata size (1085858) and sum of blob sizes (1085966) do not match
tree e5457a72: file "mail.info": metadata size (8770356) and sum of blob sizes (8770808) do not match
tree e5457a72: file "mail.log": metadata size (8770356) and sum of blob sizes (8770808) do not match
tree e5457a72: file "mail.warn": metadata size (1091226) and sum of blob sizes (1091334) do not match
备份正在运行时,文件可能已更改。
restic version
restic 0.9.0 compiled with go1.10.2 on linux/amd64
restic check
本地目录和其余服务器
我知道restic无法做任何事情来确保备份是一致的(例如,一些从属文件具有匹配的内容)。
但是我很确定restic应该确保在这种情况下它自己的存储库是一致的(存储库元数据应该与存储库数据匹配)。 如果在调用stat
但在读取整个文件之前向文件追加了内容,则restic可能只读取达到预期的文件大小,或者仅使用实际读取的字节数更新元数据。
PS。 此问题可能已在0.9上修复,并且对于新快照不会发生。
但是不幸的是, restic rebuild-index
不能修复它。
我正要打开与您@dionorgua完全相同的问题,您在11分钟之前击败了我。 :+1:
我的存储库中存在相同的错误(请参阅下文),并分享了这些错误不应该是错误的感觉,restic应该妥善处理。 备份软件无法对其下的文件进行任何更改,除了警告它在备份过程中发生以外,其他任何操作都无法进行。 但是后来,当运行check
,这些应该不是错误,甚至不会再次报告?
v0.9.0检查的结果在v0.8.3不会报告任何错误的存储库上运行。
check snapshots, trees and blobs
error for tree c1c7286d:
tree c1c7286d: file "panacea.dat": metadata size (5975885) and sum of blob sizes (5975910) do not match
error for tree 5908dec5:
tree 5908dec5: file "panacea.dat": metadata size (5425341) and sum of blob sizes (5425366) do not match
Fatal: repository contains errors
我同意,这应该是警告,或者根本不显示。 用户无法(或不需要)做任何事情。
这是旧存档程序代码中的错误,当Restic读取文件时将文件追加到仓库时,它将错误的大小写入仓库。 新的存档器不会这样做,其他所有功能都可以正常工作(它们只使用正确的大小,即文件块的总和)。
一个人如何处理这个问题? 这导致我的每周自动检查在多个备份存储库上失败。
这是我的“ restic check”的输出-我正在通过restic docker映像进行操作。
...
Digest: sha256:9c851e0ba8a9c20ef853ee507af14c4d87c33661c25136262e97506a1cdc7a57
Status: Image is up to date for restic/restic:latest
ID Date Host Tags Directory
----------------------------------------------------------------------
8eb0175e 2018-02-28 21:01:38 internal-cluster /fisheye
a7848682 2018-03-31 09:28:09 internal-cluster /fisheye
8ad27273 2018-04-30 09:28:09 internal-cluster /fisheye
97d2e914 2018-05-31 09:28:12 internal-cluster /fisheye
96ba1cc7 2018-06-30 09:28:13 internal-cluster /fisheye
23ef9a4b 2018-07-08 09:28:11 internal-cluster /fisheye
76f8e70a 2018-07-09 09:28:12 internal-cluster /fisheye
74d46da4 2018-07-10 09:28:14 internal-cluster /fisheye
a893de2c 2018-07-11 09:28:12 internal-cluster /fisheye
7dbeb6c0 2018-07-12 09:28:13 internal-cluster /fisheye
8df2f318 2018-07-13 09:28:11 internal-cluster /fisheye
e7321bf1 2018-07-14 09:28:13 internal-cluster /fisheye
----------------------------------------------------------------------
12 snapshots
+ restic check
+ sudo -E docker run --rm -e AWS_ACCESS_KEY_ID=**** -e AWS_SECRET_ACCESS_KEY=**** -e RESTIC_PASSWORD=**** -v /mnt/efs/fisheye:/fisheye:ro -h internal-cluster --user root restic/restic -r s3:s3.amazonaws.com/redacted/restic/fisheye check
using temporary cache in /tmp/restic-check-cache-069761908
create exclusive lock for repository
load indexes
check all packs
check snapshots, trees and blobs
error for tree d93db471:
tree d93db471: file "atlassian-fisheye-2018-07-13.log": metadata size (52139444) and sum of blob sizes (52165018) do not match
error for tree 8d1b1f5f:
tree 8d1b1f5f: file "atlassian-fisheye-2018-04-30.log": metadata size (53418588) and sum of blob sizes (53426968) do not match
Fatal: repository contains errors
这是一个好问题! 现在,我所有的仓库都出错了……一起考虑全面禁用check阶段,但是再次重申,这曾经是并且将是检测未来可能回归的好方法。 很难说前进的最佳方法是什么...
@ fd0 ,这是一个非常严重的错误,是否有任何解决方法可以使存储库再次静音?
抱歉,我已禁用#1887中的检查。 如果愿意,您可以选择提交。
最有用的评论
我同意,这应该是警告,或者根本不显示。 用户无法(或不需要)做任何事情。
这是旧存档程序代码中的错误,当Restic读取文件时将文件追加到仓库时,它将错误的大小写入仓库。 新的存档器不会这样做,其他所有功能都可以正常工作(它们只使用正确的大小,即文件块的总和)。