[pbs-devel] [PATCH proxmox-backup 1/3] verify: check all chunks of an index, even if we encounter a corrupt one
Dominik Csapak
d.csapak at proxmox.com
Thu Jul 30 09:09:03 CEST 2020
this makes it easier to see which chunks are corrupt
(and enables us in the future to build a 'complete' list of
corrupt chunks)
Signed-off-by: Dominik Csapak <d.csapak at proxmox.com>
---
src/backup/verify.rs | 13 +++++++++++--
1 file changed, 11 insertions(+), 2 deletions(-)
diff --git a/src/backup/verify.rs b/src/backup/verify.rs
index 33aaa621..9e309b12 100644
--- a/src/backup/verify.rs
+++ b/src/backup/verify.rs
@@ -42,6 +42,7 @@ fn verify_index_chunks(
worker: &WorkerTask,
) -> Result<(), Error> {
+ let mut errors = 0;
for pos in 0..index.index_count() {
worker.fail_on_abort()?;
@@ -50,11 +51,19 @@ fn verify_index_chunks(
let size = info.range.end - info.range.start;
if !verified_chunks.contains(&info.digest) {
- datastore.verify_stored_chunk(&info.digest, size)?;
- verified_chunks.insert(info.digest);
+ if let Err(err) = datastore.verify_stored_chunk(&info.digest, size) {
+ worker.log(format!("{}", err));
+ errors += 1;
+ } else {
+ verified_chunks.insert(info.digest);
+ }
}
}
+ if errors > 0 {
+ bail!("chunks could not be verified");
+ }
+
Ok(())
}
--
2.20.1
More information about the pbs-devel
mailing list