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
Snapshot hardware compatibility: stamp snapshots and workers with a HardwareIdentity and place resumes on matching workers #2246
A memory snapshot taken on one CPU does not restore on a different one: the guest state carries ISA, CPUID FeatureSet, and MSR assumptions of the CPU model that produced it. Today the scheduler only matches sandbox class and labels (cmd/ateapi/internal/scheduling), and nothing records
which hardware a snapshot was taken on. A fleet with more than one machine type or CPU generation therefore has no way to prefer a compatible worker on resume, and a mismatch surfaces only as a sandbox load failure that crashes the actor (#1657).
Golden snapshots have the same problem: one golden per template cannot serve a fleet with two CPU models. Per-hardware on-demand goldens (tracked separately) need this work first.
// Advertised by every worker at registration; stamped into every snapshot.messageHardwareIdentity {
// Key-value pairs describing host hardware properties (e.g. "architecture", "cpu_vendor", "cpu_model")map<string, string> attributes=1;
}
Every Worker reports its Hardware to the control plane (WorkerStatus.hardware) when registering capacity via WorkerService (Register / SetWorkerCapacity). atelet collects the host's Hardware and attaches it when relaying the worker's capacity report so capacity and hardware are recorded atomically.
Every ExternalSnapshot and LocalSnapshot records the Hardware of the worker it was captured on. Tags and CreateActor's borrowed golden snapshot carry it along.
Resume placement prefers a worker whose Hardware matches the actor's latest snapshot for memory restores. When no compatible worker exists, fall back to a cold boot at the template's minimum scope (ActorTemplate: replace on_pause/on_commit/on_resume with capture_scope and minimum_scope #2102) on any worker matching"architecture" instead of failing with ResourceExhausted or crashing.
Out of scope here: CPU feature masking, GPU and device compatibility, per-hardware golden snapshots.
Activity
shrutiyam-glitch commentedon Oct 6, 2026
cc: Zoe Zhao (@zoez7)
Worker: Report node HardwareIdentity during Worker registration (agen…
Update Snapshots API to support Actor Lifecycle v2 (agent-substrate#2289
Sync upstream sandbox, snapshot, and HTTPS egress updates (#69)
zlammerts-svg commentedon Oct 13, 2026
Pending PR: #2536