pub struct MeshFailure {
pub actor_mesh_name: Option<String>,
pub event: ActorSupervisionEvent,
pub crashed_ranks: Vec<usize>,
pub reporting_controller: Option<ActorId>,
}Expand description
Message about a supervision failure on a mesh of actors instead of a single actor.
Fields§
§actor_mesh_name: Option<String>Mesh name carried by the MeshFailure construction site,
when locally available. On the direct actor-handled path
this is the failed member’s recorded data mesh id. On
controller-owned paths this is the monitored mesh name
supplied by the controller path.
event: ActorSupervisionEventThe supervision event on an actor located at mesh + rank.
crashed_ranks: Vec<usize>The set of crashed ranks in the mesh. Empty means the event applies to the whole mesh (e.g. mesh stop, controller timeout).
reporting_controller: Option<ActorId>Identity of the mesh controller that reported this failure, when
one did (MFCA-3, MFCA-4). A separate role from event.actor_id
(the event subject); the two may hold the same ActorId on a
controller-originated event. None on construction paths with no
reporting controller, which carry no controller attribution.
Implementations§
Source§impl MeshFailure
impl MeshFailure
Sourcepub fn contains_rank(&self, rank: usize) -> bool
pub fn contains_rank(&self, rank: usize) -> bool
Returns true if the given rank is part of this failure. A whole-mesh event (empty crashed_ranks) contains every rank.
Trait Implementations§
impl Accepts<MeshFailure> for GlobalClientActorwhere
MeshFailure: RemoteMessage,
impl Accepts<MeshFailure> for WrapperActorwhere
MeshFailure: RemoteMessage,
Source§impl Clone for MeshFailure
impl Clone for MeshFailure
Source§fn clone(&self) -> MeshFailure
fn clone(&self) -> MeshFailure
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for MeshFailure
impl Debug for MeshFailure
Source§impl<'de> Deserialize<'de> for MeshFailure
impl<'de> Deserialize<'de> for MeshFailure
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl Display for MeshFailure
impl Display for MeshFailure
Source§impl Handler<MeshFailure> for GlobalClientActor
MeshFailure is a terminal supervision signal for an ActorMesh.
impl Handler<MeshFailure> for GlobalClientActor
MeshFailure is a terminal supervision signal for an ActorMesh.
The process-global root client should never be a consumer of mesh-level supervision failures during normal operation: those events are expected to be observed and handled by the owning mesh/controller, not by the global client.
In processes that create and destroy multiple meshes (e.g.,
benchmarks), MeshFailure events may arrive here during or after
mesh teardown. Log loudly but do not crash — the global client is
a monitor and must preserve forward progress.
Source§fn handle<'life0, 'life1, 'async_trait>(
&'life0 mut self,
_cx: &'life1 Context<'_, Self>,
message: MeshFailure,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn handle<'life0, 'life1, 'async_trait>(
&'life0 mut self,
_cx: &'life1 Context<'_, Self>,
message: MeshFailure,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn message_status_reporting() -> MessageStatusReporting
fn message_status_reporting() -> MessageStatusReporting
Source§impl Handler<MeshFailure> for WrapperActor
impl Handler<MeshFailure> for WrapperActor
Source§fn handle<'life0, 'life1, 'async_trait>(
&'life0 mut self,
cx: &'life1 Context<'_, Self>,
msg: MeshFailure,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn handle<'life0, 'life1, 'async_trait>(
&'life0 mut self,
cx: &'life1 Context<'_, Self>,
msg: MeshFailure,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn message_status_reporting() -> MessageStatusReporting
fn message_status_reporting() -> MessageStatusReporting
Source§impl Named for MeshFailure
impl Named for MeshFailure
Source§fn typename() -> &'static str
fn typename() -> &'static str
Source§fn typehash() -> u64
fn typehash() -> u64
Source§fn typeid() -> TypeId
fn typeid() -> TypeId
Source§impl PartialEq for MeshFailure
impl PartialEq for MeshFailure
Source§fn eq(&self, other: &MeshFailure) -> bool
fn eq(&self, other: &MeshFailure) -> bool
self and other values to be equal, and is used by ==.impl RemoteHandles<MeshFailure> for GlobalClientActorwhere
MeshFailure: RemoteMessage,
impl RemoteHandles<MeshFailure> for WrapperActorwhere
MeshFailure: RemoteMessage,
Source§impl Serialize for MeshFailure
impl Serialize for MeshFailure
impl StructuralPartialEq for MeshFailure
Auto Trait Implementations§
impl Freeze for MeshFailure
impl RefUnwindSafe for MeshFailure
impl Send for MeshFailure
impl Sync for MeshFailure
impl Unpin for MeshFailure
impl UnsafeUnpin for MeshFailure
impl UnwindSafe for MeshFailure
Blanket Implementations§
impl<M> Accepts<M> for Mwhere
M: RemoteMessage,
impl<T> Allocation for T
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request§impl<L> LayerExt<L> for L
impl<L> LayerExt<L> for L
§fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
Layered].