Skip to content

Counter demo: in-memory state not preserved across suspend/resume (gVisor, kind), despite onPause: Full #519

Description

@mcftira

Environment: kind v0.30.0 (k8s v1.36.1) on WSL2/Ubuntu 24.04, substrate@main, deployed via hack/create-kind-cluster.sh + hack/install-ate-kind.sh.

Repro: deploy counter demo, create atespace + actor, POST 3x (memory count 3, file count 3), kubectl ate suspend, POST again.

Expected: per the API docs, SnapshotScopeFull "captures process memory plus the entire filesystem delta", so the resumed actor should respond preserved memory count: 4.

Actual: memory count resets to 1 while the DurableDir file counter correctly continues to 4. Reproducible across cycles (3 -> suspend -> 1 twice; file counter 3 -> 4, 6 -> 7).

Logs: atelet shows the Checkpoint RPC succeed with pages.img.zstd/pages_meta.img.zstd uploaded, and the Restore RPC succeed (~800ms), with no warnings or errors. The memory snapshot is captured and uploaded, but appears not to be restored (or silently falls back to a fresh start).

Is memory restore expected to work on the kind/gVisor path, or is this a known limitation? Happy to collect further diagnostics.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions