> -----Original Message----- > From: Stefan Eissing [mailto:stefan.eiss...@greenbytes.de] > Sent: vrijdag 4 december 2015 16:23 > To: dev@httpd.apache.org > Subject: Re: No H2 Window updates! > > If you find the time, the lastest v1.0.10 mod_http2 in 2.4.x sets the > connection window to max which addresses for me the window starvation > issues I was able to reproduce (and put into my test suite). I hope this works > for you as well, otherwise I'd need more detailed data on how to reproduce > the hanger.
The latest version gives me immediately a connection window update of the maximum allowed value. But given that the initial connection window was already set via the settings window, adding this value is not allowed. The code has his comment copied from the RFC: /* A sender MUST NOT allow a flow-control window to exceed 2^31-1 octets. If a sender receives a WINDOW_UPDATE that causes a flow- control window to exceed this maximum, it MUST terminate either the stream or the connection, as appropriate. For streams, the sender sends a RST_STREAM with an error code of FLOW_CONTROL_ERROR; for the connection, a GOAWAY frame with an error code of FLOW_CONTROL_ERROR is sent.*/ Serf does exactly this... it terminates the connection. So it gets nowhere near the original point of failure in the test. It fails around the first stream created the test, while the original failure is after thousands of requests. Bert -- With the same logging enabled as on that older url, this is the whole test output now: START: svnmover_tests.py I: CMD: svnadmin.exe create svn-test-work\local_tmp\repos --compatible-version=1.10 --fs-type=fsfs I: <TIME = 0.016000> I: CMD: svn.exe import -m "Log message for revision 1." svn-test-work\local_tmp\greekfiles https://localhost:7829/svn-test-work/local_tmp/repos --config-dir R:\subversion\tests\cmdline\svn-test-work\local_tmp\config --password rayjandom --no-auth-cache --username jrandom I: CMD: R:\subversion\svn/svn.exe import -m "Log message for revision 1." svn-test-work\local_tmp\greekfiles https://localhost:7829/svn-test-work/local_tmp/repos --config-dir R:\subversion\tests\cmdline\svn-test-work\local_tmp\config --password rayjandom --no-auth-cache --username jrandom exited with 1 I: <TIME = 0.547000> I: DBG: Allocated 131 bytes for window on stream 0x1 (left: 65404, 65404) I: DBG: Connection window update of 2147483392 to -2147418500 I: ..\..\..\subversion\svn\import-cmd.c:129, I: ..\..\..\subversion\libsvn_client\import.c:868, I: ..\..\..\subversion\libsvn_client\ra.c:509, I: ..\..\..\subversion\libsvn_client\ra.c:488, I: ..\..\..\subversion\libsvn_ra\ra_loader.c:404: (apr_err=SVN_ERR_RA_CANNOT_CREATE_SESSION) I: svn: E170013: Unable to connect to a repository at URL 'https://localhost:7829/svn-test-work/local_tmp/repos' I: ..\..\..\subversion\libsvn_ra_serf\serf.c:603, I: ..\..\..\subversion\libsvn_ra_serf\options.c:538, I: ..\..\..\subversion\libsvn_ra_serf\util.c:1032, I: ..\..\..\subversion\libsvn_ra_serf\util.c:981, I: ..\..\..\subversion\libsvn_ra_serf\util.c:958: (apr_err=120153) I: svn: E120153: Error running context: HTTP2 flow control limits exceeded W: ..\..\..\subversion\svn\import-cmd.c:129, W: ..\..\..\subversion\libsvn_client\import.c:868, W: ..\..\..\subversion\libsvn_client\ra.c:509, W: ..\..\..\subversion\libsvn_client\ra.c:488, W: ..\..\..\subversion\libsvn_ra\ra_loader.c:404: (apr_err=SVN_ERR_RA_CANNOT_CREATE_SESSION) W: svn: E170013: Unable to connect to a repository at URL 'https://localhost:7829/svn-test-work/local_tmp/repos' W: ..\..\..\subversion\libsvn_ra_serf\serf.c:603, W: ..\..\..\subversion\libsvn_ra_serf\options.c:538, W: ..\..\..\subversion\libsvn_ra_serf\util.c:1032, W: ..\..\..\subversion\libsvn_ra_serf\util.c:981, W: ..\..\..\subversion\libsvn_ra_serf\util.c:958: (apr_err=120153) W: svn: E120153: Error running context: HTTP2 flow control limits exceeded END: svnmover_tests.py ELAPSED: svnmover_tests.py 0:00:00.609000