Hai,
Baru saja memperbarui ke restic 0.9 dan menemukan bahwa restic sekarang melaporkan kesalahan untuk repo saya yang ada (itu ok dengan 0.8.3 dan tidak berubah setelah peningkatan):
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
Mungkin file diubah saat pencadangan sedang berjalan.
restic version
restic 0.9.0 compiled with go1.10.2 on linux/amd64
restic check
direktori lokal dan rest-server
Saya mengerti bahwa restic tidak dapat melakukan apa pun untuk memastikan pencadangan konsisten (misalnya bahwa beberapa file dependen memiliki konten yang sesuai).
Tapi saya cukup yakin bahwa restic harus memastikan repositori sendiri konsisten dalam kasus seperti itu (metadata repositori harus cocok dengan data repositori). Jika ada sesuatu yang ditambahkan ke file setelah stat
dipanggil, tetapi sebelum seluruh file dibaca, mungkin restic harus membaca hanya sampai ukuran file yang diharapkan, atau hanya memperbarui metadata dengan jumlah byte yang benar-benar dibaca.
PS. Mungkin masalah ini telah diperbaiki pada 0.9 dan ini tidak akan terjadi untuk snapshot baru.
Tapi sayangnya restic rebuild-index
tidak memperbaikinya.
Saya baru saja akan membuka masalah yang sama persis dengan Anda @dionorgua , Anda memukul saya hingga 11 menit. : +1:
Memiliki kesalahan yang sama dalam repo saya (lihat di bawah), dan berbagi perasaan bahwa ini seharusnya tidak kesalahan, dan restic harus menanganinya dengan anggun. Tidak ada perangkat lunak pencadangan yang dapat dilakukan terhadap file yang berubah di bawahnya, selain peringatan bahwa itu terjadi selama proses pencadangan. Tapi nanti, ketika check
dijalankan, ini seharusnya tidak error, atau bahkan dilaporkan lagi?
Hasil pemeriksaan v0.9.0 dijalankan pada repo di mana v0.8.3 tidak melaporkan kesalahan apa pun.
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
Saya setuju, ini harus berupa peringatan atau tidak ditampilkan sama sekali. Tidak ada yang dapat (atau perlu) dilakukan pengguna.
Ini adalah bug di kode pengarsipan lama, yang menulis ukuran yang salah ke repo ketika file ditambahkan saat restic sedang membacanya. Pengarsip baru tidak melakukan itu, dan semua fungsi lainnya akan berfungsi dengan baik (mereka hanya menggunakan ukuran yang benar, jumlah potongan file).
Bagaimana seseorang menangani masalah ini? Ini menyebabkan pemeriksaan otomatis mingguan saya gagal di beberapa repo cadangan saya.
Ini adalah hasil dari "restic check" - saya melakukannya melalui image buruh pelabuhan restic.
...
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
Itu pertanyaan yang bagus! Semua repo saya, kecuali satu, dalam kesalahan sekarang ... memikirkan untuk menonaktifkan semua tahap pemeriksaan, tetapi sekali lagi, itu dulu dan akan menjadi cara yang baik untuk mendeteksi kemungkinan regresi di masa mendatang. Sulit untuk mengatakan apa cara terbaik untuk maju ...
@ fd0 , ini bug yang cukup serius, apakah ada solusi untuk membuat repo diam lagi?
Maaf untuk itu, saya telah menonaktifkan cek di # 1887. Anda dapat memilih komit jika Anda suka.
Komentar yang paling membantu
Saya setuju, ini harus berupa peringatan atau tidak ditampilkan sama sekali. Tidak ada yang dapat (atau perlu) dilakukan pengguna.
Ini adalah bug di kode pengarsipan lama, yang menulis ukuran yang salah ke repo ketika file ditambahkan saat restic sedang membacanya. Pengarsip baru tidak melakukan itu, dan semua fungsi lainnya akan berfungsi dengan baik (mereka hanya menggunakan ukuran yang benar, jumlah potongan file).