From 74cd2569bde85af4f6012beed0f0ce35c80dbf34 Mon Sep 17 00:00:00 2001 From: Svyatoslav Nikolsky Date: Fri, 2 Dec 2016 15:12:00 +0300 Subject: [PATCH] fixed panic after verification fail during sync --- sync/src/synchronization_verifier.rs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/sync/src/synchronization_verifier.rs b/sync/src/synchronization_verifier.rs index f7a0e87e..eccf71f1 100644 --- a/sync/src/synchronization_verifier.rs +++ b/sync/src/synchronization_verifier.rs @@ -142,7 +142,7 @@ impl Verifier for SyncVerifier where T: VerificationSink { /// Verify transaction fn verify_transaction(&self, height: u32, transaction: Transaction) { - execute_verification_task(&self.sink, &EmptyTransactionOutputProvider::default(), &self.verifier, VerificationTask::VerifyTransaction(height, transaction)) + execute_verification_task(&self.sink, &EmptyTransactionOutputProvider::default(), &self.verifier, VerificationTask::VerifyTransaction(height, transaction)) } } @@ -162,7 +162,8 @@ fn execute_verification_task { - unreachable!("sync will never put orphaned blocks to verification queue"); + // this can happen for B1 if B0 verification has failed && we have already scheduled verification of B0 + sink.lock().on_block_verification_error(&format!("orphaned block because parent block verification has failed"), &block.hash()) }, Err(e) => { sink.lock().on_block_verification_error(&format!("{:?}", e), &block.hash())