Skip to content

Recovery from failed resume, crash scenarios #643

Description

@msau42

Related issue: #641

Once an Actor is in RESUMING status, the only allowed transition paths are:

  • Success scenario: Actor becomes RUNNING
  • Crash scenario: Actor becomes CRASHED

That means if some error happened during Resume, the only way out is for users to keep on retrying until it succeeds, or abandon and leak the actor.

#119 proposes a "revert" API, which could help with restoring to the last known state, but even that could also run into errors.

I think as a final escape hatch, we should provide some "force delete" option. where we can 1) trigger (perhaps periodically) a cleanup sequence on nodes and CP 2) still keep track of that actor and potentially leaked resources, but allow for new actors with the same name to be created.

To accomplish this, we probably have to:

  • Track force deleting actors under a different key, maybe we prefix the actor UID with some keyword like "forcedeleting"
  • Have periodic garbage collectors in both CP and atelet.
  • Atelet only GCs actor UIDs that have been marked as forcedeleting.
  • CP GC waits for atelet GC for that actor UID to complete. This implies that we need to keep track of which atelet the actor was running on and also that we wouldn't have allowed the actor to leak on multiple nodes.

Any other thoughts/ideas?

Activity

  1. added this to the M2 milestone on Jul 31, 2026
  2. msau42 commented on Aug 3, 2026

    @msau42
    CollaboratorAuthor

    Untested POC here: main...msau42:substrate:force-delete

    For now I decided to focus on adding just a cleanup workflow, but not solve for the "allow creating same actor name while deletion is in progress" problem.

  3. zoez7 commented on Aug 11, 2026

    @zoez7
    Collaborator

    but allow for new actors with the same name to be created.

    yeah this is going to be challenging, for now maybe we can just return an error with "previous actor is still in wipeout, cannot create actor with same name".

  4. Sneha-at commented on Aug 14, 2026

    @Sneha-at
    Collaborator

    There are 2 issues here

    1. Allow an escape hatch to force "delete" an actor from any state. This will transition the state to DELETE state (It might still fail in DELETE state)
    2. Have a GC running in the background that cleans up all the leaked resources for deleted actors.

    #788 tracks the 1st point in this issue.

  5. added a commit that references this issue on Aug 20, 2026
    b708060
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

Projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions