I saw issues on boxes with the default of number of concurrent
streams.
Lowering the default 100 value of the directive H2MaxSessionStreams
solved it.
On Saturday 28/11/2015 at 10:29, Bert Huijben wrote:
-----Original Message-----
From: Jan Ehrhardt [mailto:php...@ehrhardt.nl]
Sent: vrijdag 27 november 2015 22:35
To: dev@httpd.apache.org
Subject: Re: No H2 Window updates!
Bert Huijben in gmane.comp.apache.devel (Fri, 27 Nov 2015 20:04:14
+0100):
Well. it is not a regression, so can it be a show stopper? ?.
But I would like to see this fixed.
Curious: are you still testing this on Windows? If so, I guess you
compiled your own httpd. I tried to do the same a couple of days ago,
but
ran into problems with Drupal7: the admin menu sometimes showed and
sometimes did not show at all. I could not lay my finger on what went
wrong.
Because I did not have the problems with Apachelounge's 2.4.18-dev at
https://www.apachelounge.com/viewtopic.php?t=6842 I checked out an
earlier
revision of the alpha branch:
| svn co -r 1715218
http://svn.apache.org/repos/asf/httpd/httpd/branches/2.4-http2-alpha
That revision compiled into a httpd with no problems. I am waiting now
for
Stefan Eissing to finish his work on mod_http2.
BTW: did you switch to nghttp2 1.5.0 already?
Hi Jan,
No I didn't switch to nghttp2 1.5.0 yet. Thanks for reminding me to
check if
there is a new version :)
The code I wrote for Serf code doesn't use nghttp2... After reading
the
specs I didn't think building on nghttp2 would win me a lot of time,
and
having multiple separate implementations of the same specification/RFC
in
the open source world would be a good thing. (Almost every recent H2
project
I see builds on top of nghttp2)
It is entirely possible that you hit the same problem as I did. (I'm
actually very surprised that I didn't hit this problem much earlier
on.
There is just one test in the Subversion testsuite that sends more
than 64
Kbyte of request bodies over a single connection... I'll fix that)
But back to that problem... There is an easy workaround, which I used
on the
other side until two days ago: just making the H2 default window big
enough
that you never get near it.
Just configure 'H2WindowSize' to be something like 1 GB and you
probably
never have to think about window updates. (The max allowed value is 2
GB -1)
This windowing allows the server to throttle incoming DATA from the
other
side, so servers like httpd really want to tune this dynamically. Note
that
headers and new requests are not counted to this limit, so on the
server
side it is really just request bodies... (Technically data on already
closed
streams should be counted too... but that is an implementation
detail).
I remember reading that Stefan Eissing is away for some time ('Re:
NOTICE:
Intent to T&R 2.4.18' thread), so perhaps I should spend some time
looking
at this myself.
Disabling that line that explicitly disables Window updates from the
nghttp
library, could be an easy fix... but it might require some
compensating
actions, like lowering the number of supported concurrent streams if
that
comment is still up to date. Allowing up to 100 concurrent streams per
connection could be a bit high, although this really depends on what
these
connections are used for. I don't know how to test against that 'gets
flooded' problem though, as that isn't measurable by itself.
And yes I build my own binaries for Subversion and all its
dependencies...
All my scripting that I use for that is in
https://sharpsvn.open.collab.net/svn/sharpsvn/trunk/imports (username
'guest', no password). The default build doesn't build httpd, but if
you use
a Subversion dev build (copy dev-default.build to a directory one
level
above imports) it builds httpd. My scripts should work for VS2005 upto
2015
and require nant, and some python and perl versions. Everything else
is
built from the scripts.
These same scripts drive the Subversion and Serf win32 buildbots that
I
maintain on ci.apache.org... and they also deliver the SharpSvn and
'Slik
Subversion Client' binaries.
(I currently explicitly don't deliver httpd itself or anything that
depends
on that though)
Thanks [ / Groeten ;-)],
Bert
--
Jan