oxidecomputer / oxidecomputer/omicron
Improve error-handling around partially configured zone
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 572
- Forks
- 97
- Avg merge
- 2d 12h
- Merged PRs (30d)
- 96
Description
After chatting with @bnaecker , it seems like this is a relatively common pattern.
TL;DR: Someone is running Omicron on Helios, but oops, a dependency is missing. Stop, restart, re-run everything... except now there are leftover artifacts from the first time execution started.
In particular, the sled uses local storage for:
- A ZFS dataset for storing zones
- A base zone, intended to be cloned for propolis instances
- Child zones and NICs
We should have more rigor with these objects, in particular:
- Having some mechanism for verifying them if we observe them on a re-initialization of the sled agent, and
- Preferring to use static images which are verified where possible (e.g., could we have a hash-verified base zone instead of creating it on the fly? that seems better).
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by tracing sled-agent re-initialization and how local storage creates or discovers the ZFS dataset, base zone, child zones, and NICs. Define how partially configured objects are verified on restart and where static, hash-verified base-zone images could replace creation on the fly; done means restart handling is rigorous for these artifacts.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- infrastructure
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100