Commit 3c6bb273 authored by asynchronous rob's avatar asynchronous rob Committed by André Silva
Browse files

error variant for failed deadline compute in validation worker (#383)

* error variant for failed deadline compute

* fix compilation
parent 640e0a75
Pipeline #49625 passed with stages
in 13 minutes and 31 seconds
......@@ -45,6 +45,8 @@ pub enum Error {
/// Timer failed
#[display(fmt = "Timer failed: {}", _0)]
Timer(std::io::Error),
#[display(fmt = "Failed to compute deadline of now + {:?}", _0)]
DeadlineComputeFailure(std::time::Duration),
/// Unable to dispatch agreement future
#[display(fmt = "Unable to dispatch agreement future: {:?}", _0)]
Executor(futures::future::ExecuteErrorKind),
......
......@@ -627,6 +627,14 @@ impl<C, TxApi> consensus::Proposer<Block> for Proposer<C, TxApi> where
last_included: initial_included,
};
let deadline_diff = max_duration - max_duration / 3;
let deadline = match Instant::now().checked_add(deadline_diff) {
None => return Either::Right(
future::err(Error::DeadlineComputeFailure(deadline_diff)),
),
Some(d) => d,
};
Either::Left(CreateProposal {
parent_hash: self.parent_hash.clone(),
parent_number: self.parent_number.clone(),
......@@ -639,7 +647,7 @@ impl<C, TxApi> consensus::Proposer<Block> for Proposer<C, TxApi> where
inherent_data: Some(inherent_data),
inherent_digests,
// leave some time for the proposal finalisation
deadline: Instant::now() + max_duration - max_duration / 3,
deadline,
})
}
}
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment