diff --git a/core/src/replay_stage.rs b/core/src/replay_stage.rs index f300606670..bbdc03e14d 100644 --- a/core/src/replay_stage.rs +++ b/core/src/replay_stage.rs @@ -629,11 +629,19 @@ impl ReplayStage { // errors related to the slot being purged let slot = bank.slot(); warn!("Fatal replay error in slot: {}, err: {:?}", slot, err); - datapoint_error!( - "replay-stage-mark_dead_slot", - ("error", format!("error: {:?}", err), String), - ("slot", slot, i64) - ); + if err.is_severity_error() { + datapoint_error!( + "replay-stage-mark_dead_slot", + ("error", format!("error: {:?}", err), String), + ("slot", slot, i64) + ); + } else { + datapoint_info!( + "replay-stage-mark_dead_slot", + ("error", format!("error: {:?}", err), String), + ("slot", slot, i64) + ); + } bank_progress.is_dead = true; blockstore .set_dead_slot(slot) diff --git a/ledger/src/blockstore_processor.rs b/ledger/src/blockstore_processor.rs index 9d8571bf11..a6a5ddfb4d 100644 --- a/ledger/src/blockstore_processor.rs +++ b/ledger/src/blockstore_processor.rs @@ -260,6 +260,15 @@ pub enum BlockstoreProcessorError { InvalidHardFork(Slot), } +impl BlockstoreProcessorError { + pub fn is_severity_error(&self) -> bool { + match self { + BlockstoreProcessorError::InvalidBlock(BlockError::InvalidTickCount) => false, + _ => true, + } + } +} + /// Callback for accessing bank state while processing the blockstore pub type ProcessCallback = Arc () + Sync + Send>;