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)
|
.contains(&prepared.hash)
|
||||||
{
|
{
|
||||||
let (rsp_tx, rsp_rx) = oneshot::channel();
|
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;
|
return rsp_rx;
|
||||||
}
|
}
|
||||||
|
|
||||||
if self.read_service.db.contains_height(prepared.height) {
|
if self.read_service.db.contains_height(prepared.height) {
|
||||||
let (rsp_tx, rsp_rx) = oneshot::channel();
|
let (rsp_tx, rsp_rx) = oneshot::channel();
|
||||||
let _ = rsp_tx.send(Err(
|
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;
|
return rsp_rx;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1126,9 +1126,12 @@ where
|
||||||
BlockDownloadVerifyError::Invalid {
|
BlockDownloadVerifyError::Invalid {
|
||||||
error: VerifyChainError::Block(VerifyBlockError::Commit(ref source)),
|
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)
|
// 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
|
false
|
||||||
}
|
}
|
||||||
BlockDownloadVerifyError::DownloadFailed { ref error, .. }
|
BlockDownloadVerifyError::DownloadFailed { ref error, .. }
|
||||||
|
@ -1158,6 +1161,7 @@ where
|
||||||
if err_str.contains("AlreadyVerified")
|
if err_str.contains("AlreadyVerified")
|
||||||
|| err_str.contains("AlreadyInChain")
|
|| err_str.contains("AlreadyInChain")
|
||||||
|| err_str.contains("block is already committed to the state")
|
|| 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")
|
|| err_str.contains("NotFound")
|
||||||
{
|
{
|
||||||
error!(?e,
|
error!(?e,
|
||||||
|
|
Loading…
Reference in New Issue