Conversation
Analysis of Windows Test FailuresThe Windows-specific test failures in this PR appear to be caused by a behavioral change introduced by the nullable annotations, not flaky tests. The ChangeBefore this PR, private Receive _receive;
public Receive GetCurrentBehavior() => _receive;After this PR, it throws an exception: private Receive? _receive;
public Receive GetCurrentBehavior()
{
return _receive ?? throw new IllegalActorStateException(
"Attempted to access an Actor's behavior before it has been initialized.");
}Why Windows-Only?Windows CI runs tests with different parallelism settings than Linux. This exposes race conditions where Potential Solutions
The exit code -1 (rather than specific test failures) suggests the exception is being thrown in a context where it crashes the test process rather than failing a specific test gracefully. Analysis generated while investigating flaky tests in the Akka.NET codebase. |
|
LLM analysis comment up there, but this came from a session where I've been bulk-reviewing racy tests across 7-10 PRs. Agree that that seems like a potential problem from a behavioral standpoint. |
|
That is really weird, because |
Changes
Enable nullability on
Akka.Actor.ActorState.Behavior Change
ActorState.GetCurrentBehavior()now throwsIllegalActorStateExceptionif the current actor behavior is null/undefined.