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:
		
				
					committed by
					
						 Thomas Lamprecht
						Thomas Lamprecht
					
				
			
			
				
	
			
			
			
						parent
						
							b7f2be5137
						
					
				
				
					commit
					2f0b92352d
				
			| @ -475,10 +475,22 @@ impl DataStore { | ||||
|                 Ok(file) => { | ||||
|                     if let Ok(archive_type) = archive_type(&path) { | ||||
|                         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)?; | ||||
|                         } 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)?; | ||||
|                         } | ||||
|                     } | ||||
| @ -487,7 +499,11 @@ impl DataStore { | ||||
|                     if err.kind() == std::io::ErrorKind::NotFound { | ||||
|                         // simply ignore vanished files | ||||
|                     } else { | ||||
|                         return Err(err.into()); | ||||
|                         return Err(format_err!( | ||||
|                             "cannot open index {}: {}", | ||||
|                             full_path.to_string_lossy(), | ||||
|                             err | ||||
|                         )); | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|  | ||||
		Reference in New Issue
	
	Block a user