test(mesh): stampede callers on dedicated threads — arrival gate must not depend on thread-pool injection

This commit is contained in:
Joseph Doherty
2026-08-06 04:23:51 -04:00
parent 24e55d3395
commit a463141028
@@ -296,13 +296,16 @@ public sealed class MeshPskProviderTests
var resolver = new FakeSecretResolver { Value = "stored-psk", ResolveDelay = TimeSpan.FromMilliseconds(50) };
var provider = CreateProvider(resolver);
var callers = Enumerable.Range(0, Callers).Select(_ => Task.Run(() =>
// LongRunning gives each caller a dedicated thread: reaching the arrival gate must not
// depend on thread-pool injection, which is rate-limited and made this flake on a
// contended box (the gate timed out before all 16 pool threads existed).
var callers = Enumerable.Range(0, Callers).Select(_ => Task.Factory.StartNew(() =>
{
arrived.Signal();
start.Wait();
provider.TryGetPsk("SITE-A", out var psk).ShouldBeTrue();
return psk;
})).ToArray();
}, CancellationToken.None, TaskCreationOptions.LongRunning, TaskScheduler.Default)).ToArray();
arrived.Wait(TimeSpan.FromSeconds(10)).ShouldBeTrue("all callers should reach the start gate");
start.Set();