Harden Akka.TestKit.Tests.TestEventListenerTests.CustomEventFilterDebugTests.Make_sure_async_works#7828
Open
Arkatufus wants to merge 19 commits intoakkadotnet:devfrom
Open
Conversation
…ugTests.Make_sure_async_works
Aaronontheweb
requested changes
Sep 16, 2025
Member
Aaronontheweb
left a comment
There was a problem hiding this comment.
Skeptical about the AI assessment of this
| await _testingEventFilter.ForLogLevel(LogLevel).ExpectAsync(1, TimeSpan.FromSeconds(2), () => | ||
| { | ||
| #pragma warning disable CS4014 // intentionally fire-and-forget to verify filter after action returns | ||
| _ = Task.Run(async () => |
Member
There was a problem hiding this comment.
is the ConfigureAwait(false) the only meaningful change here?
Contributor
Author
There was a problem hiding this comment.
no, its the Task.Run()
…Arkatufus/akka.net into tests/TestKit-TestEventListenerTests_01
Member
|
Separate test that failed: Akka.TestKit.Tests.TestKitBaseTests.WithinTests.Within_should_respect_minimum_time Failed: Block took 00:00:01.3719852, exceeding 00:00:01. |
…Arkatufus/akka.net into tests/TestKit-TestEventListenerTests_01
…Arkatufus/akka.net into tests/TestKit-TestEventListenerTests_01
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 join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Fix: Deflake
Make_sure_async_worksin TestEventListener testsSummary
Akka.TestKit.Tests.TestEventListenerTests.CustomEventFilterDebugTests.Make_sure_async_worksobserved on resource‑constrained CI VMs.Theory / Root Cause
Task.Delay(...).ContinueWith(...)to emit a log after the ExpectAsync action returned. Under constrained CI environments:ContinueWithschedules ontoTaskScheduler.Current, which can be bound to the TestKit’sSynchronizationContextand is sensitive to thread pool starvation.EventFilter.ExpectAsynctimes out.ExpectAsync/InterceptAsyncnow properly await async delegates. The flake is a test design fragility, not a production code defect.Mutebefore wiringEventMatchedhandlers), but it is not the primary cause here since the log is scheduled “later”.Assumptions (Test Intent)
Change
Task.Delay(...).ContinueWith(...)with a fire‑and‑forget .NET async task decoupled from the current context:Task.Run(async () => { await Task.Delay(10).ConfigureAwait(false); LogMessage("whatever"); });ExpectAsync(1, TimeSpan.FromSeconds(2), action)and returns immediately fromaction.Why This Preserves Intent and Fixes Flakiness
ContinueWith+ ambientSynchronizationContexttiming/pumping issues; reduces susceptibility to thread pool starvation in CI.