From ecb343c23bcbea7c06cb90e67a80e17d5caaac5c Mon Sep 17 00:00:00 2001 From: sakridge Date: Wed, 22 Apr 2020 19:46:06 -0700 Subject: [PATCH] reduce errors (#9669) Co-authored-by: Anatoly Yakovenko --- ledger/src/blockstore.rs | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/ledger/src/blockstore.rs b/ledger/src/blockstore.rs index 293b758f57..ac0be0bf47 100644 --- a/ledger/src/blockstore.rs +++ b/ledger/src/blockstore.rs @@ -1285,12 +1285,13 @@ impl Blockstore { slot: Slot, start_index: u64, ) -> ShredResult> { - let vec: ShredResult> = self + let mut vec: Vec = self .slot_data_iterator(slot, start_index) - .expect("blockstore couldn't fetch iterator") - .map(|data| Shred::new_from_serialized_shred(data.1.to_vec())) - .collect(); - let mut vec = vec?; + .map(|iter| { + iter.filter_map(|data| Shred::new_from_serialized_shred(data.1.to_vec()).ok()) + .collect() + }) + .unwrap_or_else(|_| vec![]); vec.sort_by_key(|s| s.index()); Ok(vec) } @@ -1351,12 +1352,13 @@ impl Blockstore { slot: Slot, start_index: u64, ) -> ShredResult> { - let vec: ShredResult> = self + let mut vec: Vec = self .slot_coding_iterator(slot, start_index) - .expect("blockstore couldn't fetch iterator") - .map(|code| Shred::new_from_serialized_shred(code.1.to_vec())) - .collect(); - let mut vec = vec?; + .map(|iter| { + iter.filter_map(|code| Shred::new_from_serialized_shred(code.1.to_vec()).ok()) + .collect() + }) + .unwrap_or_else(|_| vec![]); vec.sort_by_key(|s| s.index()); Ok(vec) }