oxidecomputer / oxidecomputer/propolis
Crucible backend needs a mechanism to be reconfigured before restarting after failed LM
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 270
- Forks
- 42
- Avg merge
- 4d 5h
- Merged PRs (30d)
- 6
Description
Hypothesized repro steps:
- Launch a VM that connects to a set of Crucible downstairs with Crucible generation 1.
- Start a migration target that will connect to the same downstairs with Crucible generation 2.
- Inject a failure into migration immediately after the target activates (note that this can happen even after #155 is fixed if there is any way for the target to fail to start after Crucible activates).
Expected: The source will wait to be moved back to the 'Running' state. Before that happens, the control plane will set the source's Crucible generation to 3 and direct it to reactivate.
Current state: There are two problems to solve here:
- Nexus has no way to update the Crucible generation number of an ensured instance.
- The migration state machine automatically resumes the source after migration fails; it should wait until it's told to do so (and should allow configuration changes to be interposed between migration failure and source restart).
Contributor guide
No contributing guide indexed for this repository
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 the Nexus path for updating an ensured instance and the migration state machine's failure and source-restart transitions. Confirm how Crucible generation changes could be interposed after migration failure; done means the source waits for an explicit restart and its generation can be updated before reactivation.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- backend, distributed-systems
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100