Merge pull request #253 from ethcore/fix_238

Fixed panic after verification fail during sync
This commit is contained in:
Marek Kotewicz 2016-12-02 13:46:22 +01:00 committed by GitHub
commit 6240f01b18
1 changed files with 3 additions and 2 deletions

View File

@ -142,7 +142,7 @@ impl<T> Verifier for SyncVerifier<T> 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<T: VerificationSink, U: PreviousTransactionOutputPr
}
},
Ok(Chain::Orphan) => {
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())