From d2c15b596f8f221f5d1043af385c6f30ac62003c Mon Sep 17 00:00:00 2001 From: Michael Vines Date: Thu, 23 Jan 2020 16:09:32 -0700 Subject: [PATCH] Add BlockstoreProcessorResult --- ledger/src/bank_forks_utils.rs | 7 +++---- ledger/src/blockstore_processor.rs | 20 ++++++++++++++------ 2 files changed, 17 insertions(+), 10 deletions(-) diff --git a/ledger/src/bank_forks_utils.rs b/ledger/src/bank_forks_utils.rs index 2241d7ab25..158cb6eb78 100644 --- a/ledger/src/bank_forks_utils.rs +++ b/ledger/src/bank_forks_utils.rs @@ -1,8 +1,7 @@ use crate::{ - bank_forks::{BankForks, SnapshotConfig}, + bank_forks::SnapshotConfig, blockstore::Blockstore, - blockstore_processor::{self, BankForksInfo, BlockstoreProcessorError, ProcessOptions}, - leader_schedule_cache::LeaderScheduleCache, + blockstore_processor::{self, BlockstoreProcessorResult, ProcessOptions}, snapshot_utils, }; use log::*; @@ -15,7 +14,7 @@ pub fn load( account_paths: Vec, snapshot_config: Option<&SnapshotConfig>, process_options: ProcessOptions, -) -> Result<(BankForks, Vec, LeaderScheduleCache), BlockstoreProcessorError> { +) -> BlockstoreProcessorResult { if let Some(snapshot_config) = snapshot_config.as_ref() { info!( "Initializing snapshot path: {:?}", diff --git a/ledger/src/blockstore_processor.rs b/ledger/src/blockstore_processor.rs index b0a7a5402e..bd6eaffa31 100644 --- a/ledger/src/blockstore_processor.rs +++ b/ledger/src/blockstore_processor.rs @@ -36,6 +36,9 @@ use std::{ }; use thiserror::Error; +pub type BlockstoreProcessorResult = + result::Result<(BankForks, Vec, LeaderScheduleCache), BlockstoreProcessorError>; + thread_local!(static PAR_THREAD_POOL: RefCell = RefCell::new(rayon::ThreadPoolBuilder::new() .num_threads(get_thread_count()) .thread_name(|ix| format!("blockstore_processor_{}", ix)) @@ -270,8 +273,7 @@ pub fn process_blockstore( blockstore: &Blockstore, account_paths: Vec, opts: ProcessOptions, -) -> result::Result<(BankForks, Vec, LeaderScheduleCache), BlockstoreProcessorError> -{ +) -> BlockstoreProcessorResult { if let Some(num_threads) = opts.override_num_threads { PAR_THREAD_POOL.with(|pool| { *pool.borrow_mut() = rayon::ThreadPoolBuilder::new() @@ -294,8 +296,7 @@ pub fn process_blockstore_from_root( blockstore: &Blockstore, bank: Arc, opts: &ProcessOptions, -) -> result::Result<(BankForks, Vec, LeaderScheduleCache), BlockstoreProcessorError> -{ +) -> BlockstoreProcessorResult { info!("processing ledger from root slot {}...", bank.slot()); let allocated = thread_mem_usage::Allocatedp::default(); let initial_allocation = allocated.get(); @@ -353,7 +354,7 @@ pub fn process_blockstore_from_root( }; info!( - "ledger processed in {}ms. {} MB allocated. {} fork{} at {}", + "ledger processed in {}ms. {} MB allocated. {} fork{} at {}, with {} frozen bank{}", duration_as_ms(&now.elapsed()), allocated.since(initial_allocation) / 1_000_000, bank_forks_info.len(), @@ -361,8 +362,15 @@ pub fn process_blockstore_from_root( bank_forks_info .iter() .map(|bfi| bfi.bank_slot.to_string()) - .join(", ") + .join(", "), + bank_forks.frozen_banks().len(), + if bank_forks.frozen_banks().len() > 1 { + "s" + } else { + "" + }, ); + assert!(bank_forks.active_banks().is_empty()); Ok((bank_forks, bank_forks_info, leader_schedule_cache)) }