-
Notifications
You must be signed in to change notification settings - Fork 62
Saga to remove a volumes read_only_parent #1797
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Update volume remove read only parent API endpoint path. Add more descriptive error message.
|
Out of band comments recorded here: sean (he/him) Alan (he/him) sean (he/him) Alan (he/him) sean (he/him) Alan (he/him) Alan (he/him) sean (he/him) Alan (he/him) sean (he/him)
Isn't this the last node though? What would continuing mean?
I figured the undo would just be to delete the temporary volume Alan (he/him) sean (he/him) Alan (he/him) sean (he/him) Alan (he/him) |
Crucible changes are: Print file name for extents (#1811) Add threads argument to `crucible-downstairs verify` (#1807) Add `--verbose` option to `crucible-verify-raw` (#1806) Restore `--gen` argument for binaries (#1805) Bump to 2024 edition (#1799) Perform reconciliation if all three downstairs are in live-repair (#1784) Rename crucible-dtrace -> crucible-utils (#1803) Add `crucible-verify-raw` and `crucible-raw-extent packages` (#1800) Added extent-info to dump out region/extent/block specific offsets (#1797) Propolis changes are: Rework resource accessors to alleviate lock contention Implement NVMe Doorbell Buffer feature Overhaul block attachment and request dispatch propolis-cli should be able to send TOML-defined CPU profiles (#943) nvme: CQEs with command-specific error 0 are acceptable (#965)
Update Propolis and Crucible
Crucible changes are:
Print file name for extents (#1811)
Add threads argument to `crucible-downstairs verify` (#1807)
Add `--verbose` option to `crucible-verify-raw` (#1806)
Restore `--gen` argument for binaries (#1805)
Bump to 2024 edition (#1799)
Perform reconciliation if all three downstairs are in live-repair
(#1784)
Rename crucible-dtrace -> crucible-utils (#1803)
Add `crucible-verify-raw` and `crucible-raw-extent packages` (#1800)
Added extent-info to dump out region/extent/block specific offsets
(#1797)
Propolis changes are:
Rework resource accessors to alleviate lock contention
Implement NVMe Doorbell Buffer feature
Overhaul block attachment and request dispatch
propolis-cli should be able to send TOML-defined CPU profiles (#943)
nvme: CQEs with command-specific error 0 are acceptable (#965)
I also changed a bunch of `gen` -> `generation` as that is now what
Crucible has.
---------
Co-authored-by: Alan Hanson <alan@oxide.computer>
Remove the Read Only Parent
This introduces an internal API endpoint and a saga to remove a volume's read only parent.
The new internal API endpoint is at:
/volume/{volume_id}/remove-read-only-parentThe basic flow for the saga to remove a read only parent is as follows:
Several tests were added that cover various valid and invalid conditions.
There is nothing yet that calls this endpoint, but in a future commit, propolis (via. crucible) will have performed a volume scrub and will call this when it is time to remove a read only parent.