fix(sync): Make the syncer ignore some new block verification errors (#5537)
* Fix error text for state service for syncer * Fix error handling in syncer * cargo fmt --all Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
This commit is contained in:
parent
2dc8c0a2bd
commit
4a8349fa8a
|
@ -609,14 +609,17 @@ impl StateService {
|
|||
.contains(&prepared.hash)
|
||||
{
|
||||
let (rsp_tx, rsp_rx) = oneshot::channel();
|
||||
let _ = rsp_tx.send(Err("block already sent to be committed to the state".into()));
|
||||
let _ = rsp_tx.send(Err(
|
||||
"block has already been sent to be committed to the state".into(),
|
||||
));
|
||||
return rsp_rx;
|
||||
}
|
||||
|
||||
if self.read_service.db.contains_height(prepared.height) {
|
||||
let (rsp_tx, rsp_rx) = oneshot::channel();
|
||||
let _ = rsp_tx.send(Err(
|
||||
"block height is already committed to the finalized state".into(),
|
||||
"block height is in the finalized state: block is already committed to the state"
|
||||
.into(),
|
||||
));
|
||||
return rsp_rx;
|
||||
}
|
||||
|
|
|
@ -1126,9 +1126,12 @@ where
|
|||
BlockDownloadVerifyError::Invalid {
|
||||
error: VerifyChainError::Block(VerifyBlockError::Commit(ref source)),
|
||||
..
|
||||
} if format!("{source:?}").contains("block is already committed to the state") => {
|
||||
} if format!("{source:?}").contains("block is already committed to the state")
|
||||
|| format!("{source:?}")
|
||||
.contains("block has already been sent to be committed to the state") =>
|
||||
{
|
||||
// TODO: improve this by checking the type (#2908)
|
||||
debug!(error = ?e, "block is already committed, possibly from a previous sync run, continuing");
|
||||
debug!(error = ?e, "block is already committed or pending a commit, possibly from a previous sync run, continuing");
|
||||
false
|
||||
}
|
||||
BlockDownloadVerifyError::DownloadFailed { ref error, .. }
|
||||
|
@ -1158,6 +1161,7 @@ where
|
|||
if err_str.contains("AlreadyVerified")
|
||||
|| err_str.contains("AlreadyInChain")
|
||||
|| err_str.contains("block is already committed to the state")
|
||||
|| err_str.contains("block has already been sent to be committed to the state")
|
||||
|| err_str.contains("NotFound")
|
||||
{
|
||||
error!(?e,
|
||||
|
|
Loading…
Reference in New Issue