From 31eac2f7c0b87b01f5ee473a29eba3a3e5a70b40 Mon Sep 17 00:00:00 2001 From: Richard Date: Fri, 2 Oct 2026 12:11:35 +0200 Subject: [PATCH] Drain-Test: eine Sekunde Frist statt 300 ms bei 250-ms-Takt (#722) Co-Authored-By: Claude Opus 5.5 --- .../InstanceSupervisorTests.cs | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/tests/ClawdDotNet.Manager.Tests/InstanceSupervisorTests.cs b/tests/ClawdDotNet.Manager.Tests/InstanceSupervisorTests.cs index 04e9f12..fb0e6f2 100644 --- a/tests/ClawdDotNet.Manager.Tests/InstanceSupervisorTests.cs +++ b/tests/ClawdDotNet.Manager.Tests/InstanceSupervisorTests.cs @@ -307,22 +307,24 @@ public sealed class InstanceSupervisorTests : IDisposable { _kanal.Answer = Test; - // #722: Viel Luft bis MaxDrainWait — unter Parallellast kam die Verzoegerung von 700 ms - // sonst erst nach den 2 s an, und der Test sah einen Abschuss, wo keiner hingehoert. - await using var aufsicht = Aufsicht(Options with { MaxDrainWait = TimeSpan.FromSeconds(20) }); + // #722: Die Aufsicht fragt alle 250 ms und schiebt die Frist nur bei "raeume auf" weiter. + // Mit 300 ms Frist kam unter Parallellast die naechste Frage zu spaet, und der Test sah + // einen Abschuss, wo keiner hingehoert. Eine Sekunde Frist laesst dem Takt Luft; die + // Instanz raeumt trotzdem deutlich laenger auf, als die Frist allein erlaubt. + await using var aufsicht = Aufsicht(Options with { StopGrace = TimeSpan.FromSeconds(1), MaxDrainWait = TimeSpan.FromSeconds(20) }); await aufsicht.StartAsync(); var prozess = _launcher.Last.ShouldNotBeNull(); - // Sie antwortet und meldet: Ich raeume auf. Laenger als StopGrace (300ms), aber + // Sie antwortet und meldet: Ich raeume auf. Laenger als StopGrace (1 s), aber // kuerzer als MaxDrainWait. _kanal.Answer = Test with { Phase = ShutdownPhase.Draining, OpenWork = 1 }; _kanal.OnStopRequest = _ => Task.Run(async () => { - await Task.Delay(700); - _kanal.Answer = null; + await Task.Delay(2500); prozess.Exit(0); + _kanal.Answer = null; }); (await aufsicht.StopAsync()).ShouldBeTrue();