hyperlight-dev / hyperlight-dev/hyperlight

Snapshot follow up items

Aperta
#1,479 1 commento 0 reazioni 0 assegnatari Vedi su GitHub
lifecycle/confirmed
Lingua principale
Rust
Stelle
4.7k
Fork
208
Merge medio
1g 7h
PR unite (30g)
47

Descrizione

The following items are follow up items after #1459 was merged

- [ ] Rename hostfunctions.hostfunctinos field https://github.com/hyperlight-dev/hyperlight/pull/1459#discussion_r3275734300
- [ ] document gdb lifecycle https://github.com/hyperlight-dev/hyperlight/pull/1459#discussion_r3319743850
- [x] Make sandboxes from the same snapshot/disk restore-compatible (i.e. remove sandbox_id field, hash, with proper verficaiton) https://github.com/hyperlight-dev/hyperlight/pull/1459#discussion_r3319694175
- [ ] Have separate configs for creating sandboxes from scratch and from snapshot, to avoid ignored fields
- [ ] Think harder about sematincs of mutable host functions (allow registering after sandbox is created, and create sandbox with set of host functions that is superset of hostfunctions that existed at snapshot-time.

-----

After #1465 is merged, we also have the following items
- [ ] #1551
- [ ] https://github.com/hyperlight-dev/hyperlight/issues/1617
- [ ] max_guest_log_level is not plumbed through snapshot load.
- [ ] 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. On Linux this is unenforced. On Windows the OS refuses the operation with ERROR_USER_MAPPED_FILE (1224). Firecracker has the same constraint:
> The memory file (pointed by `backend_path` when using `File` backend type,
> or pointed by `mem_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.

[firecracker docs](https://github.com/firecracker-microvm/firecracker/blob/main/docs/snapshotting/snapshot-support.md#loading-snapshots)
- [ ] Typed error variants
- [ ] Investigate Cross-hypervisor portability
- [ ] Huge page support
- [x] "Golden snapshot" testing for checking ABI breaks
- [ ] Atomic file operation for crash safety (load/save snapshot to disk)
- [ ] Consider adding convenience method `MultiUseSandbox::from_oci` (or not)
- [ ] Docs / examples for how to use with Oras/etc etc

Guida per i contributori

Apri la guida per i contributori

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.