It starts with a one time warning and will not negotiate. That's all. 

> Am 06.07.2017 um 19:02 schrieb William A Rowe Jr <wr...@rowe-clan.net>:
> 
> +1 to removing support of mom prefork. I'd prefer it still start and if 
> configured, with an [error] level alert in the logs and simply be disabled. 
> Server must start when module is loaded but not configured, e.g. in test 
> framework, IMO.
> 
>> On Jul 6, 2017 10:31 AM, "Stefan Eissing" <stefan.eiss...@greenbytes.de> 
>> wrote:
>> Correction: websockets are not defined over h2. To make a more "real life" 
>> scenario:
>> 
>> One example is a long polling request by a javascript component. During the 
>> long poll, the browser will not get other responses.
>> 
>> More esoteric: when content filters (brotli, gzip) are in place, compression 
>> happens in the h2 worker thread. If one PUSHes such a resource, clients 
>> sometimes use h2 flow control to delay the sending of a response. This would 
>> deadlock the connection in a prefork model.
>> 
>> These are complications not easily debugged or reproducible.
>> 
>> > Am 06.07.2017 um 17:15 schrieb Stefan Eissing 
>> > <stefan.eiss...@greenbytes.de>:
>> >
>> > Hej,
>> >
>> > I tried to gather some discussion about this. Should have polled this 
>> > mailing list. You can read most of it here: 
>> > https://github.com/icing/mod_h2/issues/142
>> >
>> > tl;dr
>> >
>> > I had several reports in the past of people being disappointed about h2 
>> > performance, only to learn they were on prefork. Which means every request 
>> > is processed serially (with static files being an exception, as long as no 
>> > filters prevent this).
>> >
>> > In 2.4.26 I changed the (undocumented) default from 1 to 4 h2 workers, 
>> > which brought us to the issue I linked. The easy fix is 'H2MaxWorkers 1' 
>> > in the config and you have the pre-2.4.26 behaviour.
>> >
>> > Regardless of the discussion if the change in 2.4.26 was reasonable or 
>> > not: it is not possible to map the prefork single-thread requirement on to 
>> > HTTP/2. Not going to work. One long running request, one websocket opened, 
>> > and your browser will stall.
>> >
>> > This is not a bug, it is the collision of the processing models.
>> >
>> > So, I think disabling it prevent user from shooting themselves in the 
>> > foot. If you are on prefork, you'd want the 6 parallel HTTP/1.1 
>> > connections, not h2.
>> >
>> > Does this make sense?
>> >
>> > Cheers,
>> >
>> > Stefan
>> >
>> > PS. Yes, I know that one /could/ make parallel processes work in prefork 
>> > by placing the h2 dispatching in a parent process. If someone wants to 
>> > implement that, be my guest.
>> >
>> >
>> >> Am 06.07.2017 um 16:55 schrieb Bert Huijben <b...@qqmail.nl>:
>> >>
>> >>
>> >>
>> >>> -----Original Message-----
>> >>> From: Jim Jagielski [mailto:j...@jagunet.com]
>> >>> Sent: woensdag 5 juli 2017 18:49
>> >>> To: dev@httpd.apache.org
>> >>> Subject: Re: 2.4.27
>> >>>
>> >>> These are just the fixes/regressions noted in CHANGES:
>> >>>
>> >>> Changes with Apache 2.4.27
>> >>>
>> >>> *) mod_lua: Improve compatibility with Lua 5.1, 5.2 and 5.3.
>> >>>    PR58188, PR60831, PR61245. [Rainer Jung]
>> >>>
>> >>> *) mod_http2: disable and give warning when mpm_prefork is
>> >>> encountered. The server will
>> >>>    continue to work, but HTTP/2 will no longer be negotiated. [Stefan
>> >> Eissing]
>> >>
>> >> Can somebody point me to the reasoning behind this?
>> >>
>> >> I have this configuration on FreeBSD with older Httpd versions, and it 
>> >> works
>> >> just fine for my limited load.
>> >>
>> >> Switching to a different model will require compiling more ports myself as
>> >> the FreeBSD packaging system is optimized for this model.
>> >>
>> >>
>> >> I do understand that there is a better mapping of http/2 streams with the
>> >> more modern MPMs, but there must be a reason that it worked and no longer
>> >> can be supported in the future. I assume this reason is already documented
>> >> somewhere...
>> >>
>> >> Thanks,
>> >>
>> >>      Bert
>> >>
>> >>
>> >
>> 

Reply via email to