You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
controlapi: synchronous suspend drops locality for a retained local checkpoint #2938
A synchronous SuspendActor can leave an uploaded checkpoint on the node, but controlapi's sync finalization drops its locality and clears assigned_node. The files remain on the node, and a later detach report can be rejected because the actor is no longer recorded there.
Expected behavior
Retain locality and assigned_node when atelet reports that it kept the captured checkpoint. Release the worker assignment. Clear the node binding when there is no matching local copy.
The report must match the snapshot's UUID, generation, and non-empty upload URI. Upload completion alone does not confirm a local copy.
Steps to reproduce
Resume an actor on node A.
Call SuspendActor with options.mode = DURABILITY_MODE_SYNCHRONOUS.
Have atelet return LatestLocal and LatestDurable for the uploaded checkpoint.
Read the actor. Its durable copy is COMPLETED, but its locality and node binding are absent.
The regression in #2883 reproduces this through a fake atelet with PostgreSQL and envtest.
Acceptance criteria
A matching kept-local report retains locality and the node binding while releasing the worker.
Missing or mismatched reports leave a durable copy without a local record or node binding.
Resume on another node detaches first. Try compatible workers before dropping memory through runtime fallback.
Resume preserves the selected snapshot's UUID, generation, and URI, including after a template change.
Re-entry into RESUMING can reuse an allowed relaxed assignment. A pending checkpoint cannot use an older generation's completed upload to authorize fallback.
Scope
Runtime-agnostic control-plane behavior. Cache-aware scheduler scoring and cache budgets are outside this issue.
Activity
ateapi: record a sync suspend's local snapshot copy and resume from i…