test: use InProcessTestClusterBuilder in Azure stream reliability tests - #10222
Merged
ReubenBond merged 3 commits intoJul 31, 2026
Merged
Conversation
ReubenBond
force-pushed
the
reubenbond/investigate-silo-port-flake
branch
3 times, most recently
from
June 15, 2026 22:17
a20c3f6 to
98c073b
Compare
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
ReubenBond
force-pushed
the
reubenbond/investigate-silo-port-flake
branch
from
July 31, 2026 16:33
98c073b to
c816a38
Compare
Contributor
There was a problem hiding this comment.
Pull request overview
This PR updates the Azure stream reliability test fixture to run using InProcessTestClusterBuilder/test-cluster membership instead of process-hosted silos, aiming to reduce flakiness from real TCP port binding collisions during silo joins while still exercising Azure Queue streaming and Azure-backed storage/pubsub behavior.
Changes:
- Migrates
StreamReliabilityTeststoBaseInProcessTestClusterFixtureand updates cluster/client/silo configuration accordingly. - Updates test logging calls to use the fixture-provided
LoggerandHostedClusterin-process cluster. - Extends
StreamTestUtils.LogStartTestto supportInProcessTestClusterby logging active silo addresses.
Show a summary per file
| File | Description |
|---|---|
| test/Orleans.Streaming.Tests/StreamingTests/StreamTestUtils.cs | Adds an InProcessTestCluster overload for LogStartTest to support the in-process test cluster. |
| test/Extensions/Orleans.Azure.Tests/Streaming/StreamReliabilityTests.cs | Switches the reliability tests to BaseInProcessTestClusterFixture and removes incidental Azure Storage clustering/gateway discovery setup. |
Copilot's findings
Suppressed comments (1)
test/Extensions/Orleans.Azure.Tests/Streaming/StreamReliabilityTests.cs:964
- In StopSilo(), the action string includes "Kill and restart" when (restart, kill) is (true, true), but the current restart path always uses RestartSiloAsync() (a graceful stop + restart) and does not perform a hard kill. This log message is misleading when diagnosing test failures.
var action = (restart, kill) switch
{
(true, true) => "Kill and restart",
(true, false) => "Stop and restart",
(false, true) => "Kill",
- Files reviewed: 2/2 changed files
- Comments generated: 1
Comment on lines
991
to
+992
| // WaitForLivenessToStabilize(!kill); | ||
| this.HostedCluster.WaitForLivenessToStabilizeAsync(kill).Wait(); | ||
| await this.HostedCluster.WaitForLivenessToStabilizeAsync(kill); |
This was referenced Aug 28, 2026
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 subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.
This fixes Azure stream reliability test flakiness caused by standalone silo processes binding real TCP ports during silo joins.
The Azure stream reliability fixture now uses InProcessTestClusterBuilder with test cluster membership and removes incidental Azure Storage clustering/gateway discovery configuration. It still exercises Azure Queue streaming and Azure-backed storage/pubsub behavior while avoiding process-hosted silo startup port collisions.
Microsoft Reviewers: Open in CodeFlow