Skip to main content

Module supervision

Module supervision 

Source
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 MeshFailure a controller constructs stamps reporting_controller = Some(controller_id); send_state_change is 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) and reporting_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): None is reserved for construction paths with no reporting mesh controller; such a failure carries no controller attribution.

Structs§

MeshFailure
Message about a supervision failure on a mesh of actors instead of a single actor.