diff --git a/consensus/src/epoch_manager.rs b/consensus/src/epoch_manager.rs index 9de974a015..1f7de83a89 100644 --- a/consensus/src/epoch_manager.rs +++ b/consensus/src/epoch_manager.rs @@ -302,9 +302,14 @@ impl EpochManager { let mut safety_rules = MetricsSafetyRules::new(self.safety_rules_manager.client(), self.storage.clone()); + //////// 0L //////// + // Don't panic on initialize. We may be a validator trying to sync from a starting point. + // however this error if not solved, will cause a problem on the next epoch. if let Err(error) = safety_rules.perform_initialize() { - panic!( - "Unable to initialize safety rules, epoch: {}, error: {}", epoch, error + error!( + epoch = epoch, + error = error, + "Unable to initialize safety rules. YOUR VALIDATOR WILL NOT BE ABLE TO SIGN BLOCKS but it will be able to sync. This is likely a problem with the restore point in your DB.", ); } diff --git a/consensus/src/metrics_safety_rules.rs b/consensus/src/metrics_safety_rules.rs index 064e2a6c1f..73b1c62e08 100644 --- a/consensus/src/metrics_safety_rules.rs +++ b/consensus/src/metrics_safety_rules.rs @@ -33,8 +33,9 @@ impl MetricsSafetyRules { .storage .retrieve_epoch_change_proof(sr_waypoint.version()) .map_err(|e| { + //////// 0L //////// Error::InternalError(format!( - "Unable to retrieve epoch change proof from storage for Waypoint. State for version {} not found. Error:{}", + "Unable to retrieve epoch change proof from storage for Waypoint. The node will continue to sync, but the validator will not be able to sign transactions. State for version {} not found. Error:{}", &sr_waypoint.version(), e ))