From 31c94d164551fee9c693b9e2ac907ca33fcab7ae Mon Sep 17 00:00:00 2001 From: Dominik Csapak Date: Tue, 13 Jul 2021 11:11:24 +0200 Subject: [PATCH] chunk_store/insert_chunk: add more information to file errors otherwise this context is missing in some tasks (e.g. tape restore) and it is unclear where it came from Signed-off-by: Dominik Csapak --- pbs-datastore/src/chunk_store.rs | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/pbs-datastore/src/chunk_store.rs b/pbs-datastore/src/chunk_store.rs index ddf0a769..361cc9a2 100644 --- a/pbs-datastore/src/chunk_store.rs +++ b/pbs-datastore/src/chunk_store.rs @@ -401,12 +401,26 @@ impl ChunkStore { let mut tmp_path = chunk_path.clone(); tmp_path.set_extension("tmp"); - let mut file = std::fs::File::create(&tmp_path)?; + let mut file = std::fs::File::create(&tmp_path).map_err(|err| { + format_err!( + "creating temporary chunk on store '{}' failed for {} - {}", + self.name, + digest_str, + err + ) + })?; let raw_data = chunk.raw_data(); let encoded_size = raw_data.len() as u64; - file.write_all(raw_data)?; + file.write_all(raw_data).map_err(|err| { + format_err!( + "writing temporary chunk on store '{}' failed for {} - {}", + self.name, + digest_str, + err + ) + })?; if let Err(err) = std::fs::rename(&tmp_path, &chunk_path) { if std::fs::remove_file(&tmp_path).is_err() { /* ignore */ }