Skip to content

fix(testing): prevent fatal errors from terminating test hosts - #10438

Merged
ReubenBond merged 1 commit into
dotnet:mainfrom
ReubenBond:reubenbond-fix-liveness-test-failfast
Aug 11, 2026
Merged

ReubenBond merged 1 commit into
dotnet:mainfrom
ReubenBond:reubenbond-fix-liveness-test-failfast

Conversation

@ReubenBond

@ReubenBond ReubenBond commented Aug 11, 2026 •

Copy link
Copy Markdown
Member

Fixes #10409.

A graceful silo shutdown can publish the local membership row as Dead before MembershipTableManager.CurrentStatus is updated. A concurrent refresh then treats the expected shutdown transition as remote eviction and invokes the production fatal handler, terminating the entire shared test process.

This change suppresses fatal handling when the silo lifecycle is already stopping, adds explicit membership convergence barriers to the liveness test, and replaces the production fatal handler in Orleans.TestingHost so unexpected fatal errors stop only the affected silo. It also removes the remaining test-only Environment.FailFast watchdog in fake-time tests in favor of an ordinary asynchronous timeout.

Microsoft Reviewers: Open in CodeFlow

Avoid treating a local dead membership row as fatal during graceful shutdown, isolate fatal errors to the affected test silo, stabilize liveness convergence, and replace the fake-time FailFast watchdog with an ordinary test timeout.

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

Copilot-Session: 8c700cc1-8a6e-459a-ae18-76b40d595ff7
@ReubenBond
ReubenBond force-pushed the reubenbond-fix-liveness-test-failfast branch from 741753c to 00b52c9 Compare August 11, 2026 06:04
@ReubenBond
ReubenBond merged commit 06ead11 into dotnet:main Aug 11, 2026
132 of 134 checks passed
@ReubenBond
ReubenBond deleted the reubenbond-fix-liveness-test-failfast branch August 11, 2026 14:54
This was referenced Aug 28, 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.

Flaky test: Liveness_Grain_1 terminates the test host

1 participant