Skip to content

Improve distributed directory upgrade resilience#10051

Closed
ReubenBond wants to merge 1 commit into
dotnet:feature/distributed-remote-grain-directoryfrom
ReubenBond:fix/directory-upgrade-resilience
Closed

Improve distributed directory upgrade resilience#10051
ReubenBond wants to merge 1 commit into
dotnet:feature/distributed-remote-grain-directoryfrom
ReubenBond:fix/directory-upgrade-resilience

Conversation

@ReubenBond

@ReubenBond ReubenBond commented Apr 29, 2026

Copy link
Copy Markdown
Member

Summary

Improves mixed-version rolling upgrade resilience for DistributedRemoteGrainDirectory requests.

Changes

  • Add cancellation-aware internal register, lookup, and unregister paths.
  • Ensure the distributed directory has observed membership before serving legacy remote-directory requests.
  • Bound legacy remote-directory operations with a timeout so requests cannot block indefinitely before the first membership update.
Microsoft Reviewers: Open in CodeFlow

Add CancellationToken support and initialization guard to prevent
DistributedRemoteGrainDirectory from blocking indefinitely when
directory requests arrive before the first membership update.

- Extract internal LookupAsync, RegisterAsync, UnregisterAsync methods
  with CancellationToken support on DistributedGrainDirectory
- Add EnsureDirectoryInitializedAsync to refresh membership view before
  processing requests from legacy silos
- Add 30-second timeout to all IRemoteGrainDirectory operations
- Pass DirectoryMembershipService to DistributedRemoteGrainDirectory
- Simplify rolling upgrade test assertions

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@ReubenBond

Copy link
Copy Markdown
Member Author

Superseded by the reordered clean merge stack. The commits from this PR have been folded into #10050, so the intended order is #10053 -> #10047 -> #10048 -> #10050 -> #10049.

@ReubenBond ReubenBond closed this Apr 29, 2026
@github-actions github-actions Bot locked and limited conversation to collaborators May 30, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant