hyperlight-dev / hyperlight-dev/hyperlight
Snapshot follow up items
- Langage dominant
- Rust
- Étoiles
- 4.7k
- Forks
- 208
- Merge moyen
- 1 j 7 h
- PR mergées (30 j)
- 48
Description
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
Guide de contribution
Ouvrir le guide de contribution
Piste de recherche
Commencez par examiner les modifications fusionnées dans #1459 et #1465, puis lisez les discussions liées et les issues référencées #1551 et #1617. La checklist couvre la configuration des snapshots, la sémantique des fonctions host, la sécurité des fichiers, la gestion des erreurs, la portabilité, les huge pages, la résistance aux crashs et la documentation ; un élément est considéré comme terminé lorsque l’élément de suivi sélectionné est résolu avec sa validation ou sa documentation correspondante.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- rust
- Domaine
- infrastructure, operating-systems
- Type d'issue
- Fonctionnalité
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Activité
- Calme
- Clarté
- À clarifier
- Accessibilité débutants
- 25/100