> Am 30.04.2018 um 12:00 schrieb Yann Ylavic <[email protected]>: > > On Mon, Apr 30, 2018 at 9:28 AM, Stefan Eissing <[email protected] >> wrote: >> >> with the change http://svn.apache.org/r1819214 the keepalive handling >> in HTTP/2 was broken, as reported here >> >> https://github.com/icing/mod_h2/issues/160 > > Oh crap, I thougth that the h2 connection was over at this point (with > its own keepalive handling regardless of MPM). > Sorry about that.
> >> >> If the mpm_event connection state handling is not suitable to >> honoring a keepalive setting, we need to fix this. Keeping idle >> connections parked in fdqueue without occupying a thread seems to be >> one of event's advantages. mod_http2 did enable this by keeping the >> connection in CONN_STATE_WRITE_COMPLETION. The change places it in >> CONN_STATE_LINGER which means it is closed after 1 second, always. >> >> Since you know event's connection state handling much better than me: >> what can we do to fix this? > > There nothing wrong with returning CONN_STATE_WRITE_COMPLETION here > like before, CONN_STATE_HANDLER is wrong though. > So the previous code with s/CONN_STATE_HANDLER/CONN_STATE_LINGER/ > should restore the behaviour I think. Will give it a try. However, I had already keepalive tests in the http2 test suite, but those do not fail. So, mpm_event's behaviour on when it ditches idle connections is not really clear to me and other tests I do not know of. Basically, I am a bit frustrated by mpm_event and its non-documentation. Maybe I missed the documents that explain how its different states actually work? -Stefan
