hyperlight-dev / hyperlight-dev/hyperlight

Snapshot follow up items

Ouverte
#1,479 1 commentaire 0 réactions 0 personnes assignées Voir sur GitHub
lifecycle/confirmed
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

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.