Repository navigation
Snapshot follow up items #1479
Description
The following items are follow up items after #1459 was merged
-
Rename hostfunctions.hostfunctinos fieldDropped: internal name, not worth the churn. Create sandboxes directly from snapshots #1459 (comment) - document gdb lifecycle. Tracked in Rethink debug lifecycle #1210. Create sandboxes directly from snapshots #1459 (comment)
- Make sandboxes from the same snapshot/disk restore-compatible (i.e. remove sandbox_id field, hash, with proper verficaiton) Create sandboxes directly from snapshots #1459 (comment)
- Have separate configs for creating sandboxes from scratch and from snapshot, to avoid ignored fields. Tracked in Allow snapshot-backed
SandboxBuilderto accept a completeSandboxConfiguration#1862. -
Think harder about sematincs of mutable host functionsDone in part: a sandbox accepts a superset of the snapshot's host functions, with signatures checked. Registering after creation is dropped: no use case, and superset matching covers switching guests.
After #1465 is merged, we also have the following items
-
Support multi-layer OCI snapshot (map scratch? Determined by benchmarks) #1551 Superseded by HIP 3 (Implement HIP 3 (incremental snapshots) #1956), which covers multi-layer snapshots on disk and decides against mapping scratch.
-
Support core dumps for sandboxes created from snapshots #1617 Fixed by Support core dump on snapshots created from snapshot/disk #1618.
-
max_guest_log_level is not plumbed through snapshot load. Fixed by feat: support guest log level overrides for initialized snapshots #1833 (max_guest_log_level is not plumbed through snapshot load #1698).
-
The backing OCI directory must not be modified, truncated, renamed over, or deleted for the lifetime of a loaded Snapshot or any MultiUseSandbox built from it. Documented under "File-mutation hazard" on
Snapshot::load. Not enforced on Linux, same as Firecracker:The memory file (pointed by
backend_pathwhen usingFilebackend type,
or pointed bymem_file_path) must be considered immutable from
Firecracker and host point of view. It backs the guest OS memory for read
access through the page cache. External modification to this file corrupts
the guest memory and leads to undefined behavior. -
Typed error variants. Tracked in Replace generic HyperlightError::Error variant with specific error types to improve sandbox poisoning accuracy #998.
-
Investigate Cross-hypervisor portabilityDropped: snapshots are bound to architecture, hypervisor and CPU vendor by design, documented indocs/snapshot-oci-format.md. -
Huge page supportDropped until a benchmark shows a need. ATODOmarks the spot insnapshot/mod.rs. -
"Golden snapshot" testing for checking ABI breaks
-
Atomic file operation for crash safety (load/save snapshot to disk).
savewrites each file to a temporary file, syncs it, and renames it into place. Writingindex.jsonis the final step. -
Consider adding convenience methodDropped:MultiUseSandbox::from_oci(or not)Snapshot::loadfollowed bySandboxBuilder::from_snapshotis enough. -
Docs / examples for how to use with Oras/etc etc. Tracked in Document saving, loading and distributing snapshots #1976.
Metadata
Metadata
Assignees
Labels
Type
Projects
- StatusShow more project fieldsDone
Activity
[-]Sandbox-from-sandbox follow up[/-][+]Sandbox-from-snapshot follow up[/+][-]Sandbox-from-snapshot follow up[/-][+]Sandbox follow up items[/+][-]Sandbox follow up items[/-][+]Snapshot follow up items[/+]ludfjig commentedon Jun 24, 2026
adding
release-blockerto make sure we think hard about reseeding (or not) randomness during a snapshot restore, before we maka releaseludfjig commentedon Oct 22, 2026
All items are done, dropped, or tracked elsewhere:
SandboxBuilderto accept a completeSandboxConfiguration#1862: separate configs for new and snapshot sandboxesRelated open snapshot issues: #1917, #1870, #1863.