omdb: add facility for abandoning a saga #7791
Draft
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
(N.B. This reuses a bunch of
omdb
code added by #7732 that I've merged into this branch. If we add more warnings or prompts to theinject-error
command before that PR merges, I'll probably want to reuse them here, so this PR is just a draft until 7732 is in main and I can clean up the history here. I don't expect the schema or Nexus bits to change that much more, though, unless review and testing reveal I've messed something up.)Add an
Abandoned
saga state. This state disqualifies a saga from being picked up by Nexus saga recovery. (A running saga will continue running if it is Abandoned, and continued saga execution may end up clobbering the Abandoned state entirely.) Add anomdb
subcommand to move a saga to this state (and refactor a bit to avoid duplicating code with theinject-error
subcommand).Tested (so far) by:
svcadm restart
), but is no longer recovered once abandonedFixes #7730.