garbage collect: improve index error messages
so that in case of a broken index file, the user knows which it is Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
This commit is contained in:
parent
b7f2be5137
commit
2f0b92352d
|
@ -475,10 +475,22 @@ impl DataStore {
|
||||||
Ok(file) => {
|
Ok(file) => {
|
||||||
if let Ok(archive_type) = archive_type(&path) {
|
if let Ok(archive_type) = archive_type(&path) {
|
||||||
if archive_type == ArchiveType::FixedIndex {
|
if archive_type == ArchiveType::FixedIndex {
|
||||||
let index = FixedIndexReader::new(file)?;
|
let index = FixedIndexReader::new(file).map_err(|err| {
|
||||||
|
format_err!(
|
||||||
|
"cannot read fixed index {}: {}",
|
||||||
|
full_path.to_string_lossy(),
|
||||||
|
err
|
||||||
|
)
|
||||||
|
})?;
|
||||||
self.index_mark_used_chunks(index, &path, status, worker)?;
|
self.index_mark_used_chunks(index, &path, status, worker)?;
|
||||||
} else if archive_type == ArchiveType::DynamicIndex {
|
} else if archive_type == ArchiveType::DynamicIndex {
|
||||||
let index = DynamicIndexReader::new(file)?;
|
let index = DynamicIndexReader::new(file).map_err(|err| {
|
||||||
|
format_err!(
|
||||||
|
"cannot read dynamic index {}: {}",
|
||||||
|
full_path.to_string_lossy(),
|
||||||
|
err
|
||||||
|
)
|
||||||
|
})?;
|
||||||
self.index_mark_used_chunks(index, &path, status, worker)?;
|
self.index_mark_used_chunks(index, &path, status, worker)?;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -487,7 +499,11 @@ impl DataStore {
|
||||||
if err.kind() == std::io::ErrorKind::NotFound {
|
if err.kind() == std::io::ErrorKind::NotFound {
|
||||||
// simply ignore vanished files
|
// simply ignore vanished files
|
||||||
} else {
|
} else {
|
||||||
return Err(err.into());
|
return Err(format_err!(
|
||||||
|
"cannot open index {}: {}",
|
||||||
|
full_path.to_string_lossy(),
|
||||||
|
err
|
||||||
|
));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue