hyperlight-dev / hyperlight-dev/hyperlight

Snapshot follow up items

未关闭
#1,479 1 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
lifecycle/confirmed
主要语言
Rust
星标
4.7k
派生
208
平均合并
1 天 7 小时
30 天内合并 PR
48

描述

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

贡献指南

打开贡献指南

调研方向

首先查看 #1459 和 #1465 中已合并的更改,然后阅读链接的讨论以及引用的 issue #1551 和 #1617。检查清单涵盖快照配置、主机函数语义、文件安全性、错误处理、可移植性、大页、崩溃安全性和文档;完成意味着解决选定的后续事项,并提供相应的验证或文档。

由索引模型根据 Issue 内容生成。

评估

技术栈
rust
领域
infrastructure, operating-systems
Issue 类型
功能
难度
5/5
预计耗时
一周以上
活跃度
冷清
描述清晰度
需要澄清
新手友好度
25/100

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。