Expand description
Messages used in supervision of actor meshes.
§Mesh-name propagation
When a MeshFailure is constructed for a supervision event
whose constructing site has the mesh name locally in scope, the
mesh name is carried on MeshFailure.actor_mesh_name. The
constructing site does not perform a lookup to obtain the mesh
name; if the mesh name is not locally available at the site,
None is correct. MeshFailure::Display surfaces the mesh
name as an on mesh "{name}" segment when actor_mesh_name
is populated; stable identifiers continue to appear in detail
segments where the renderer already includes them.
A data actor mesh labels each member’s supervision events with
its mesh id, so the owner’s supervision handler names the failed
mesh from the event (see ACTOR_MESH_ID in actor_mesh.rs and
PythonActor::handle_supervision_event in
monarch_hyperactor/src/actor.rs).
§Mesh failure controller-attribution invariants (MFCA-*)
MeshFailure.reporting_controller names the mesh controller that
observed and reported the failure, distinct from event.actor_id
(the actor the event concerns).
- MFCA-1 (complete controller reports): every
MeshFailurea controller constructs stampsreporting_controller = Some(controller_id);send_state_changeis the sole controller-to-owner failure post and stamps before posting. - MFCA-2 (same identity): the stamped id is
cx.instance().self_addr().id(), which equals the id a consumer reads from the mesh’s controller ref (ActorMesh::controller, or the proc-mesh controller). - MFCA-3 (subject/source separation):
event.actor_id(the event subject/root cause) andreporting_controller(the reporter) are separate roles; their values may coincide on a controller-originated event, but neither is overloaded to mean the other. - MFCA-4 (non-controller absence):
Noneis reserved for construction paths with no reporting mesh controller; such a failure carries no controller attribution.
Structs§
- Mesh
Failure - Message about a supervision failure on a mesh of actors instead of a single actor.