[fm] Guard support bundle creation with SitrepGuardedInsert.#10535
Open
mergeconflict wants to merge 1 commit into
Open
Conversation
e15c2c1 to
e5d67e2
Compare
1bc2f60 to
62cc3dd
Compare
e5d67e2 to
809d7d3
Compare
62cc3dd to
3d5af68
Compare
809d7d3 to
7128ff2
Compare
a1beef9 to
e97748d
Compare
7128ff2 to
1574845
Compare
e97748d to
f3832d4
Compare
1574845 to
4d0f1dd
Compare
f3832d4 to
cbc506b
Compare
85edf6b to
a3ab6c2
Compare
59680b0 to
b6f5bfe
Compare
a3ab6c2 to
26cbbe1
Compare
b6f5bfe to
a7d6f65
Compare
26cbbe1 to
da05cf5
Compare
The support-bundle mirror of the preceding alert change: `impl SitrepGuardedResource for SupportBundle`, the `support_bundle_generation` column and `rendezvous_support_bundle_created` marker table (migration fm-bundle-resource-deletion), `support_bundle_create`'s FM path routed through the combinator inside its transaction, support-bundle generation tracking and carry-forward, the fm_rendezvous bundle loop, the fm_analysis bundle-marker lookup, and the omdb display. `support_bundle_generation` and `alert_generation` are tracked and guarded independently, so a stale generation for one resource aborts only that resource's rendezvous loop.
a7d6f65 to
aee00ec
Compare
da05cf5 to
064090e
Compare
smklein
reviewed
Jun 8, 2026
Comment on lines
+975
to
+976
| // need a sitrep present before calling. Insert one at generation 0; the | ||
| // FM call below uses the same expected generation. |
Collaborator
There was a problem hiding this comment.
Suggested change
| // need a sitrep present before calling. Insert one at generation 0; the | |
| // FM call below uses the same expected generation. | |
| // need a sitrep present before calling. Insert one at generation 1; the | |
| // FM call below uses the same expected generation. |
Comment on lines
+318
to
+320
| } else if !case.alerts_requested.is_empty() | ||
| || !case.support_bundles_requested.is_empty() | ||
| { |
Collaborator
There was a problem hiding this comment.
Should this just be an unconditional else ?
| -- support_bundle_generation on the sitrep being executed. | ||
| -- Taken together, these two conditions ensure that no sitrep will ever attempt | ||
| -- to resurrect a deleted bundle, meaning the marker is no longer needed. | ||
| CREATE TABLE IF NOT EXISTS omicron.public.rendezvous_support_bundle_created ( |
Collaborator
There was a problem hiding this comment.
Notably we aren't back-filling any tables here based on existing bundles. Is this because we expect no FM-generated bundles to exist when this PR is merged?
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Wire the support bundle resource through
SitrepGuardedInsert:impl SitrepGuardedResource for SupportBundle;support_bundle_generationonfm_sitrepand therendezvous_support_bundle_createdmarker table (migration fm-bundle-resource-deletion);support_bundle_create's FM path routes through the combinator, surfacing a stale sitrep asError::Conflict;SitrepBuildertrackssupport_bundle_generation, bumping it when the outstanding support-bundle-request set changes; the closed-case carry-forward filter drops fully-satisfied closed cases and keeps those with unsatisfied support bundle requests;support_bundle_generationandalert_generationare tracked and guarded independently, so a stale generation for one resource aborts only that resource's rendezvous loop.Context: #10248, builds on #10564 and #10533. Note, garbage collection for
rendezvous_support_bundle_createdrows is not in this PR, that should be coming later this week if all goes well.