Skip to content

Stabilize activation rebalancer control test#10131

Merged
ReubenBond merged 1 commit into
dotnet:mainfrom
ReubenBond:reubenbond/fix-pr-failure
May 21, 2026
Merged

Stabilize activation rebalancer control test#10131
ReubenBond merged 1 commit into
dotnet:mainfrom
ReubenBond:reubenbond/fix-pr-failure

Conversation

@ReubenBond

@ReubenBond ReubenBond commented May 21, 2026

Copy link
Copy Markdown
Member

Reason

PR #10126 hit a failure in ControlRebalancerTests.Rebalancer_Should_Be_Controllable_And_Report_To_Listeners, but the failed test is unrelated to the grain-directory changes in that PR. The test had a timing race after a timed suspension expired.

Solution

The test now asserts the report that already observed the rebalancer return to Executing, instead of forcing a second report. That extra report could race with the next normal rebalancing session and observe a valid new suspension, causing a false failure.

This keeps the assertion focused on the behavior under test: the timed suspension expires and returns an executing report with no suspension duration.

Microsoft Reviewers: Open in CodeFlow

Avoid taking a fresh rebalancer report after the test has already observed the timed suspension expire. The extra report can race with the next normal rebalancing session and observe a valid new suspension.

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

Copilot AI left a comment

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.

Pull request overview

This PR stabilizes the ControlRebalancerTests.Rebalancer_Should_Be_Controllable_And_Report_To_Listeners functional test by removing a timing race around timed suspension expiry in the activation rebalancer control/reporting flow.

Changes:

  • Stop forcing an extra GetRebalancingReport(true) call after the timed suspension expires.
  • Assert the already-observed transition back to RebalancerStatus.Executing and verify SuspensionDuration is null on that same report.
Show a summary per file
File Description
test/Orleans.Placement.Tests/ActivationRebalancingTests/ControlRebalancerTests.cs Updates the test to assert the post-expiry executing report without requesting an additional report which could race with a new rebalancing/suspension cycle.

Copilot's findings

  • Files reviewed: 1/1 changed files
  • Comments generated: 0

@ReubenBond ReubenBond added this pull request to the merge queue May 21, 2026
Merged via the queue into dotnet:main with commit 6f5ca63 May 21, 2026
122 of 123 checks passed
@ReubenBond ReubenBond deleted the reubenbond/fix-pr-failure branch May 21, 2026 23:09
@github-actions github-actions Bot locked and limited conversation to collaborators Jun 21, 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.

2 participants