mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-06-21 01:41:03 +00:00
Ensure candidate-backing and provisioner exit on missing Overseer (#6939)
This ensures that both subsystems exit when the Overseer has exited because of some error.
This commit is contained in:
@@ -70,6 +70,10 @@ pub enum Error {
|
|||||||
|
|
||||||
#[error(transparent)]
|
#[error(transparent)]
|
||||||
SubsystemError(#[from] SubsystemError),
|
SubsystemError(#[from] SubsystemError),
|
||||||
|
|
||||||
|
#[fatal]
|
||||||
|
#[error(transparent)]
|
||||||
|
OverseerExited(SubsystemError),
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Utility for eating top level errors and log them.
|
/// Utility for eating top level errors and log them.
|
||||||
|
|||||||
@@ -199,7 +199,8 @@ async fn run_iteration<Context>(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
from_overseer = ctx.recv().fuse() => {
|
from_overseer = ctx.recv().fuse() => {
|
||||||
match from_overseer? {
|
// Map the error to ensure that the subsystem exits when the overseer is gone.
|
||||||
|
match from_overseer.map_err(Error::OverseerExited)? {
|
||||||
FromOrchestra::Signal(OverseerSignal::ActiveLeaves(update)) => handle_active_leaves_update(
|
FromOrchestra::Signal(OverseerSignal::ActiveLeaves(update)) => handle_active_leaves_update(
|
||||||
&mut *ctx,
|
&mut *ctx,
|
||||||
update,
|
update,
|
||||||
|
|||||||
@@ -75,6 +75,10 @@ pub enum Error {
|
|||||||
|
|
||||||
#[error(transparent)]
|
#[error(transparent)]
|
||||||
SubsystemError(#[from] SubsystemError),
|
SubsystemError(#[from] SubsystemError),
|
||||||
|
|
||||||
|
#[fatal]
|
||||||
|
#[error(transparent)]
|
||||||
|
OverseerExited(SubsystemError),
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Used by `get_onchain_disputes` to represent errors related to fetching on-chain disputes from the Runtime
|
/// Used by `get_onchain_disputes` to represent errors related to fetching on-chain disputes from the Runtime
|
||||||
|
|||||||
@@ -144,7 +144,8 @@ async fn run_iteration<Context>(
|
|||||||
loop {
|
loop {
|
||||||
futures::select! {
|
futures::select! {
|
||||||
from_overseer = ctx.recv().fuse() => {
|
from_overseer = ctx.recv().fuse() => {
|
||||||
match from_overseer? {
|
// Map the error to ensure that the subsystem exits when the overseer is gone.
|
||||||
|
match from_overseer.map_err(Error::OverseerExited)? {
|
||||||
FromOrchestra::Signal(OverseerSignal::ActiveLeaves(update)) =>
|
FromOrchestra::Signal(OverseerSignal::ActiveLeaves(update)) =>
|
||||||
handle_active_leaves_update(update, per_relay_parent, inherent_delays),
|
handle_active_leaves_update(update, per_relay_parent, inherent_delays),
|
||||||
FromOrchestra::Signal(OverseerSignal::BlockFinalized(..)) => {},
|
FromOrchestra::Signal(OverseerSignal::BlockFinalized(..)) => {},
|
||||||
|
|||||||
Reference in New Issue
Block a user