Skip to content

[9/n] [reconfigurator] initialize rendezvous_sled_bp_availability during RSS and tests - #11218

Open
sunshowers wants to merge 3 commits into
mainfrom
sunshowers/spr/9n-reconfigurator-initialize-rendezvous_sled_bp_availability-during-rss-and-tests
Open

[9/n] [reconfigurator] initialize rendezvous_sled_bp_availability during RSS and tests#11218
sunshowers wants to merge 3 commits into
mainfrom
sunshowers/spr/9n-reconfigurator-initialize-rendezvous_sled_bp_availability-during-rss-and-tests

Conversation

@sunshowers

Copy link
Copy Markdown
Contributor

For RSS, it helps avoid a gap before the initial rendezvous task run occurs. In tests, we use it to simulate what Nexus's rendezvous background task would do without having a full Nexus present.

Created using spr 1.3.6-beta.1

[skip ci]
Created using spr 1.3.6-beta.1
let not_applied: Vec<_> =
writes.iter().filter(|write| !write.outcome.applied()).collect();
if !not_applied.is_empty() {
return Err(Error::internal_error(&format!(

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This check makes me nervous, I think due to a combination of reasons:

  • I don't see how it could ever fail. Maybe something like: the RSS handoff inserts the blueprint in a separate transaction from seeding this table, and then the bg task populates this table before we try to seed, and now every row fails to apply because it already exists?
  • If the bulk write method succeeds but we failed to apply any rows, that must mean that sled already exists in the availability table, right? That again points to someone (the bg task?) managed to seed this row before we could, which means the thing we're trying to accomplish is already (presumably successfully?) done.
  • If this fails, RSS handoff will fail, and it will never recover, because if there are rows already in the table, they'll still be there on every retry.

All that said: is having this check riskier than not having it, and relying on just the overall success/failure of the writes?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah -- good catch. Changed the check to be level-triggered so that we only care that the process was successful.

@sunshowers
sunshowers changed the base branch from sunshowers/spr/main.9n-reconfigurator-initialize-rendezvous_sled_bp_availability-during-rss-and-tests to main September 4, 2026 22:58
Created using spr 1.3.6-beta.1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants