Server_idle_monitor_does_not_abort_connection_when_client_does_not_write_anything failure (IceIdleTimeoutTests)
From https://github.com/icerpc/icerpc-csharp/actions/runs/13774631428/job/38521018387?pr=4116
Failed IceRpc:Tests:IceIdleTimeoutTests:Server_idle_monitor_does_not_abort_connection_when_client_does_not_write_anything [1 s]
Error Message:
Assert.That(serverShutdownRequested.IsCompleted, Is.False)
Expected: False
But was: True
Stack Trace:
at IceRpc.Tests.IceIdleTimeoutTests.Server_idle_monitor_does_not_abort_connection_when_client_does_not_write_anything() in D:\a\icerpc-csharp\icerpc-csharp\tests\IceRpc.Tests\IceIdleTimeoutTests.cs:line 110
at IceRpc.Tests.IceIdleTimeoutTests.Server_idle_monitor_does_not_abort_connection_when_client_does_not_write_anything() in D:\a\icerpc-csharp\icerpc-csharp\tests\IceRpc.Tests\IceIdleTimeoutTests.cs:line 116
at NUnit.Framework.Internal.AsyncToSyncAdapter.Await[TResult](Func`1 invoke)
at NUnit.Framework.Internal.Commands.TestMethodCommand.Execute(TestExecutionContext context)
at NUnit.Framework.Internal.Commands.BeforeTestCommand.Execute(TestExecutionContext context)
at NUnit.Framework.Internal.ContextUtils.<>c__DisplayClass1_0`1.<DoIsolated>b__0(Object _)
1) at IceRpc.Tests.IceIdleTimeoutTests.Server_idle_monitor_does_not_abort_connection_when_client_does_not_write_anything() in D:\a\icerpc-csharp\icerpc-csharp\tests\IceRpc.Tests\IceIdleTimeoutTests.cs:line 110
This also failed on macos in https://github.com/icerpc/icerpc-csharp/actions/runs/19517619631/job/55873345612?pr=4126
Test run for /Users/runner/work/icerpc-csharp/icerpc-csharp/tests/IceRpc.Quic.Tests/net9.0/IceRpc.Quic.Tests.dll (.NETCoreApp,Version=v9.0)
Passed IceRpc:Tests:SequenceCouplerTests:Concat_sequences(System:Buffers:ReadOnlySequence<Byte>[3],System:Buffers:ReadOnlySequence<Byte>[0]) [< 1 ms]
Passed IceRpc:Tests:SequenceCouplerTests:Concat_sequences(System:Buffers:ReadOnlySequence<Byte>[3],System:Buffers:ReadOnlySequence<Byte>[3]) [< 1 ms]
Passed IceRpc:Tests:IceIdleTimeoutTests:Server_idle_monitor_does_not_abort_connection_when_client_does_not_write_anything [1 s]
Passed IceRpc:Tests:Transports:Slic:SlicIdleTimeoutTests:Slic_send_pings_are_called [404 ms]
Passed IceRpc:Tests:SequenceCouplerTests:Concat_sequences(System:Buffers:ReadOnlySequence<Byte>[3],System:Buffers:ReadOnlySequence<Byte>[0]) [< 1 ms]
Passed IceRpc:Tests:SequenceCouplerTests:Concat_sequences(System:Buffers:ReadOnlySequence<Byte>[3],System:Buffers:ReadOnlySequence<Byte>[3]) [< 1 ms]
Failed IceRpc:Tests:IceIdleTimeoutTests:Server_idle_monitor_does_not_abort_connection_when_client_does_not_write_anything [994 ms]
Error Message:
Assert.That(serverShutdownRequested.IsCompleted, Is.False)
Expected: False
But was: True
Stack Trace:
at IceRpc.Tests.IceIdleTimeoutTests.Server_idle_monitor_does_not_abort_connection_when_client_does_not_write_anything() in /Users/runner/work/icerpc-csharp/icerpc-csharp/tests/IceRpc.Tests/IceIdleTimeoutTests.cs:line 110
at IceRpc.Tests.IceIdleTimeoutTests.Server_idle_monitor_does_not_abort_connection_when_client_does_not_write_anything() in /Users/runner/work/icerpc-csharp/icerpc-csharp/tests/IceRpc.Tests/IceIdleTimeoutTests.cs:line 116
at NUnit.Framework.Internal.TaskAwaitAdapter.GenericAdapter`1.BlockUntilCompleted()
at NUnit.Framework.Internal.MessagePumpStrategy.NoMessagePumpStrategy.WaitForCompletion(AwaitAdapter awaiter)
at NUnit.Framework.Internal.AsyncToSyncAdapter.Await[TResult](Func`1 invoke)
at NUnit.Framework.Internal.AsyncToSyncAdapter.Await(Func`1 invoke)
at NUnit.Framework.Internal.Commands.TestMethodCommand.RunTestMethod(TestExecutionContext context)
at NUnit.Framework.Internal.Commands.TestMethodCommand.Execute(TestExecutionContext context)
at NUnit.Framework.Internal.Commands.BeforeTestCommand.Execute(TestExecutionContext context)
at NUnit.Framework.Internal.Execution.SimpleWorkItem.<>c__DisplayClass3_0.<PerformWork>b__0()
at NUnit.Framework.Internal.ContextUtils.<>c__DisplayClass1_0`1.<DoIsolated>b__0(Object _)
1) at IceRpc.Tests.IceIdleTimeoutTests.Server_idle_monitor_does_not_abort_connection_when_client_does_not_write_anything() in /Users/runner/work/icerpc-csharp/icerpc-csharp/tests/IceRpc.Tests/IceIdleTimeoutTests.cs:line 110
Passed IceRpc:Tests:Transports:Slic:SlicIdleTimeoutTests:Slic_send_pings_are_called [311 ms]
VSTest version 17.14.1 (arm64)
I am confused about the Quic reference since we don't run the Quic tests on macos.
I am confused about the Quic reference since we don't run the Quic tests on macos.
I think the runner still has to load the test, and the setup fixture skip them in https://github.com/icerpc/icerpc-csharp/blob/4f51fb03aebcc313df97ed477b633a4c0c53e244/tests/IceRpc.Quic.Tests/Transports/QuicTransportTests.cs#L19-L26
A better error on a more recent macos run:
Failed IceRpc:Tests:IceIdleTimeoutTests:Server_idle_monitor_does_not_abort_connection_when_client_does_not_write_anything [1 s]
Error Message:
Assert.That(code, new ThrowsNothingConstraint())
Expected: No Exception to be thrown
But was: <IceRpc.IceRpcException: The connection did not receive any bytes for over 0.3 s.
at IceRpc.Internal.IceDuplexConnectionDecorator.<>c__DisplayClass7_0.<<ReadAsync>g__PerformReadAsync|0>d.MoveNext() in /_/src/IceRpc/Internal/IceDuplexConnectionDecorator.cs:line 52
--- End of stack trace from previous location ---
at IceRpc.Transports.Internal.DuplexConnectionReader.ReadAsyncCore(Int32 minimumSize, Boolean canReturnEmptyBuffer, CancellationToken cancellationToken) in /_/src/IceRpc/Transports/Internal/DuplexConnectionReader.cs:line 171
at IceRpc.Internal.IceProtocolConnection.ReadFramesAsync(CancellationToken cancellationToken) in /_/src/IceRpc/Internal/IceProtocolConnection.cs:line 1151
at IceRpc.Internal.IceProtocolConnection.<>c__DisplayClass36_0.<<ShutdownAsync>g__PerformShutdownAsync|0>d.MoveNext() in /_/src/IceRpc/Internal/IceProtocolConnection.cs:line 537
--- End of stack trace from previous location ---
at IceRpc.Tests.IceIdleTimeoutTests.<>c__DisplayClass2_0.<<Server_idle_monitor_does_not_abort_connection_when_client_does_not_write_anything>b__0>d.MoveNext() in /Users/runner/work/icerpc-csharp/icerpc-csharp/tests/IceRpc.Tests/IceIdleTimeoutTests.cs:line 114
--- End of stack trace from previous location ---
at NUnit.Framework.Internal.TaskAwaitAdapter.GenericAdapter`1.BlockUntilCompleted()
at NUnit.Framework.Internal.MessagePumpStrategy.NoMessagePumpStrategy.WaitForCompletion(AwaitAdapter awaiter)
at NUnit.Framework.Internal.AsyncToSyncAdapter.Await[TResult](Func`1 invoke)
at NUnit.Framework.Internal.AsyncToSyncAdapter.Await(Func`1 invoke)
at NUnit.Framework.Internal.ExceptionHelper.RecordException(Delegate parameterlessDelegate, String parameterName)>
Stack Trace:
at IceRpc.Tests.IceIdleTimeoutTests.Server_idle_monitor_does_not_abort_connection_when_client_does_not_write_anything() in /Users/runner/work/icerpc-csharp/icerpc-csharp/tests/IceRpc.Tests/IceIdleTimeoutTests.cs:line 114
at IceRpc.Tests.IceIdleTimeoutTests.Server_idle_monitor_does_not_abort_connection_when_client_does_not_write_anything() in /Users/runner/work/icerpc-csharp/icerpc-csharp/tests/IceRpc.Tests/IceIdleTimeoutTests.cs:line 127
at NUnit.Framework.Internal.TaskAwaitAdapter.GenericAdapter`1.BlockUntilCompleted()
at NUnit.Framework.Internal.MessagePumpStrategy.NoMessagePumpStrategy.WaitForCompletion(AwaitAdapter awaiter)
at NUnit.Framework.Internal.AsyncToSyncAdapter.Await[TResult](Func`1 invoke)
at NUnit.Framework.Internal.AsyncToSyncAdapter.Await(Func`1 invoke)
at NUnit.Framework.Internal.Commands.TestMethodCommand.RunTestMethod(TestExecutionContext context)
at NUnit.Framework.Internal.Commands.TestMethodCommand.Execute(TestExecutionContext context)
at NUnit.Framework.Internal.Execution.SimpleWorkItem.<>c__DisplayClass3_0.<PerformWork>b__0()
at NUnit.Framework.Internal.ContextUtils.<>c__DisplayClass1_0`1.<DoIsolated>b__0(Object _)
1) at IceRpc.Tests.IceIdleTimeoutTests.Server_idle_monitor_does_not_abort_connection_when_client_does_not_write_anything() in /Users/runner/work/icerpc-csharp/icerpc-csharp/tests/IceRpc.Tests/IceIdleTimeoutTests.cs:line 114
Shows the server-side idle monitor aborted the connection.