[pbs-devel] [PATCH proxmox-backup] tape/pool_writer: do not unwrap on channel send
Dominik Csapak
d.csapak at proxmox.com
Mon May 10 13:54:09 CEST 2021
if the reader thread is already gone here, we panic here, resulting in
a nondescript error message, so simply ignore/warn in that case and
return gracefully
Signed-off-by: Dominik Csapak <d.csapak at proxmox.com>
---
src/tape/pool_writer/new_chunks_iterator.rs | 14 +++++++++++---
1 file changed, 11 insertions(+), 3 deletions(-)
diff --git a/src/tape/pool_writer/new_chunks_iterator.rs b/src/tape/pool_writer/new_chunks_iterator.rs
index 56491356..64472902 100644
--- a/src/tape/pool_writer/new_chunks_iterator.rs
+++ b/src/tape/pool_writer/new_chunks_iterator.rs
@@ -51,7 +51,7 @@ impl NewChunksIterator {
loop {
let digest = match chunk_iter.next() {
None => {
- tx.send(Ok(None)).unwrap();
+ let _ = tx.send(Ok(None)); // ignore send error
break;
}
Some(digest) => digest?,
@@ -67,7 +67,13 @@ impl NewChunksIterator {
let blob = datastore.load_chunk(&digest)?;
//println!("LOAD CHUNK {}", proxmox::tools::digest_to_hex(&digest));
- tx.send(Ok(Some((digest, blob)))).unwrap();
+ match tx.send(Ok(Some((digest, blob)))) {
+ Ok(()) => {},
+ Err(err) => {
+ eprintln!("could not send chunk to reader thread: {}", err);
+ break;
+ }
+ }
chunk_index.insert(digest);
}
@@ -75,7 +81,9 @@ impl NewChunksIterator {
Ok(())
});
if let Err(err) = result {
- tx.send(Err(err)).unwrap();
+ if let Err(err) = tx.send(Err(err)) {
+ eprintln!("error sending result to reader thread: {}", err);
+ }
}
});
--
2.20.1
More information about the pbs-devel
mailing list