Hi Luke, On Wed, Jan 23, 2019 at 05:16:04PM +0000, Luke Seelenbinder wrote: > Hi Willy, > > This is all very good to hear. I'm glad you were able to get to the bottom of > it all! > > Feel free to send along patches if you want me to test before the 1.9.3 > release. I'm more than happy to do so.
OK so instead of sending you a boring series, I can propose you to run a test on 2.0-dev, which contains all the fixes I had to go through because of tiny issues everywhere related to this. If you're using git, just clone the master and checkout commit f7a259d46f8. you can simply wait for the next nightly snapshot. Just let me know if that's OK for you. I found a number of issues that were causing server aborts, mainly due to the late GOAWAY frame. Once we hit this one, the connection is quickly closed by the server, causing our output packets to be rejected and the connection to be in error. I have not yet investigated in details to see if the close happens after we got the last data or in the middle though. But now you have a new server parameter called "max-reuse". This allows to limit the number of times a server connection is reused. For example you can set it to 990 when you know that the server limits to 1000. On the tests I've run here, I managed to address all the problems related to excessive use of idle connections resulting in too many streams being sent. In addition most of the rare cases that still happen when you don't have max-reuse are properly handled as a retry. Regarding the fact that in your case the client's close seems to cause the server-side issue, I couldn't yet reproduce it though I have a few theories about it. One of them would be an unexpected response from the server causing the connection to turn to an error state. The other one would be that we'd incorrectly abort our stream and/or session and bring the connection down with us. I'll submit these theories to Olivier once he's back so that he can tell me I'm saying crap regarding some of them and we can focus on what remains :-) Regards, Willy

