zeroc-ice / ice

All-in-one solution for creating networked applications with RPC, pub/sub, server deployment, and more.
https://zeroc.com
GNU General Public License v2.0
2k stars 592 forks source link

Back pressure fix from 3.7 #2360

Open bentoi opened 3 days ago

bentoi commented 3 days ago

This PR merges the back pressure fix from 3.7 to main.

bernardnormier commented 3 days ago

I don't understand how the idleTimeout tests works.

Since back pressure works as of this PR, and the idle check is currently back-pressure unaware, the first test should fail.

The test fails, fortunately:

Ice.ConnectionLostException: Exception of type 'Ice.ConnectionLostException' was thrown.
   at Ice.Internal.OutgoingAsyncBase.invokeException() in /Users/runner/work/ice/ice/csharp/src/Ice/Internal/OutgoingAsync.cs:line 95
--- End of stack trace from previous location ---
   at Ice.idleTimeout.AllTests.testIdleCheckDoesNotAbortConnectionWhenThreadPoolIsExhausted(TestIntfPrx p, TextWriter output) in /Users/runner/work/ice/ice/csharp/test/Ice/idleTimeout/AllTests.cs:line 41
   at Ice.idleTimeout.AllTests.allTests(TestHelper helper) in /Users/runner/work/ice/ice/csharp/test/Ice/idleTimeout/AllTests.cs:line 17
   at Ice.idleTimeout.Client.runAsync(String[] args) in /Users/runner/work/ice/ice/csharp/test/Ice/idleTimeout/Client.cs:line 12
   at Test.TestDriver.runTestAsync[T](String[] args) in /Users/runner/work/ice/ice/csharp/test/TestCommon/TestHelper.cs:line 232

test in Ice/idleTimeout failed:

Please comment it out for now.