Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id 7A582200CBD for ; Thu, 6 Jul 2017 17:31:40 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id 78B85166AE9; Thu, 6 Jul 2017 15:31:40 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id BDEF8166AE6 for ; Thu, 6 Jul 2017 17:31:39 +0200 (CEST) Received: (qmail 21406 invoked by uid 500); 6 Jul 2017 15:31:38 -0000 Mailing-List: contact dev-help@httpd.apache.org; run by ezmlm Precedence: bulk Reply-To: dev@httpd.apache.org list-help: list-unsubscribe: List-Post: List-Id: Delivered-To: mailing list dev@httpd.apache.org Received: (qmail 21396 invoked by uid 99); 6 Jul 2017 15:31:38 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd1-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 06 Jul 2017 15:31:38 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd1-us-west.apache.org (ASF Mail Server at spamd1-us-west.apache.org) with ESMTP id CCD05C145F for ; Thu, 6 Jul 2017 15:37:31 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd1-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: 0.389 X-Spam-Level: X-Spam-Status: No, score=0.389 tagged_above=-999 required=6.31 tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, KAM_NUMSUBJECT=0.5, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01] autolearn=disabled Authentication-Results: spamd1-us-west.apache.org (amavisd-new); dkim=pass (1024-bit key) header.d=greenbytes.de header.b=iS2zBB1+; dkim=pass (1024-bit key) header.d=greenbytes.de header.b=jZSVWNt6 Received: from mx1-lw-eu.apache.org ([10.40.0.8]) by localhost (spamd1-us-west.apache.org [10.40.0.7]) (amavisd-new, port 10024) with ESMTP id RM7C6e3N4I6j for ; Thu, 6 Jul 2017 15:37:30 +0000 (UTC) Received: from mail.greenbytes.de (mail.greenbytes.de [217.91.35.233]) by mx1-lw-eu.apache.org (ASF Mail Server at mx1-lw-eu.apache.org) with ESMTPS id 991E45FCD7 for ; Thu, 6 Jul 2017 15:31:36 +0000 (UTC) Received: by mail.greenbytes.de (Postfix, from userid 117) id BD5F915A134D; Thu, 6 Jul 2017 17:31:35 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=greenbytes.de; s=mail; t=1499355095; bh=ZZIOdt+++OPSfoFMn0wgIUX5/hwoFDNNuZc26Q0/jLw=; h=From:Subject:Date:References:To:In-Reply-To:From; b=iS2zBB1+F0VjXZD8f6s9x9Mc9GbXn2kIgDoYcsVZIA+QNG9Rk0nmKm+RVZm6lZRXM RyNwuZw5/lptWmBWUgrmDIz1/rZgsC5fXqrYtU0CixGWiUyKgOYtOnZEUxgb6WDK9v p8jvD6NqcDPSQfVVGmqaC2+nLdDyUDvA64ZC8xD0= Received: from resistance.greenbytes.local (unknown [217.91.35.233]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mail.greenbytes.de (Postfix) with ESMTPSA id 962AA15A0ABF for ; Thu, 6 Jul 2017 17:31:31 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=greenbytes.de; s=mail; t=1499355091; bh=ZZIOdt+++OPSfoFMn0wgIUX5/hwoFDNNuZc26Q0/jLw=; h=From:Subject:Date:References:To:In-Reply-To:From; b=jZSVWNt6mHe4kxdWGJjQLrFtvD4czrqDQi4ipOplrQ0zJQAWz42zvICH4UZZ3qhG/ QcgwoWgWIGzRNfjhzQJ4355WZommAS/g5+u4eYMvGALViCcYrq4ME3XkYDSUicxcfg pUUZrG7w+iPJUXY09RgwNSWOaMv3Khcdum2gRfno= From: Stefan Eissing Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable Mime-Version: 1.0 (Mac OS X Mail 10.3 \(3273\)) Subject: Re: 2.4.27 Date: Thu, 6 Jul 2017 17:31:31 +0200 References: <19CA5E06-B22D-4A0C-B44F-1017CF1CF6E9@jaguNET.com> <20170703173945.cfeauklb6nslkte7@leander> <0e2901d2f667$f7772250$e66566f0$@qqmail.nl> <98F14D4D-55E7-43FA-B4F9-EA05E08CA0FA@greenbytes.de> To: dev@httpd.apache.org In-Reply-To: <98F14D4D-55E7-43FA-B4F9-EA05E08CA0FA@greenbytes.de> Message-Id: X-Mailer: Apple Mail (2.3273) archived-at: Thu, 06 Jul 2017 15:31:40 -0000 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.=20 These are complications not easily debugged or reproducible. > Am 06.07.2017 um 17:15 schrieb Stefan Eissing = : >=20 > Hej, >=20 > 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 >=20 > tl;dr >=20 > 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). >=20 > 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. >=20 > 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. >=20 > This is not a bug, it is the collision of the processing models. >=20 > 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. >=20 > Does this make sense? >=20 > Cheers, >=20 > Stefan >=20 > 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. >=20 >=20 >> Am 06.07.2017 um 16:55 schrieb Bert Huijben : >>=20 >>=20 >>=20 >>> -----Original Message----- >>> From: Jim Jagielski [mailto:jim@jaguNET.com] >>> Sent: woensdag 5 juli 2017 18:49 >>> To: dev@httpd.apache.org >>> Subject: Re: 2.4.27 >>>=20 >>> These are just the fixes/regressions noted in CHANGES: >>>=20 >>> Changes with Apache 2.4.27 >>>=20 >>> *) mod_lua: Improve compatibility with Lua 5.1, 5.2 and 5.3. >>> PR58188, PR60831, PR61245. [Rainer Jung] >>>=20 >>> *) 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] >>=20 >> Can somebody point me to the reasoning behind this? >>=20 >> I have this configuration on FreeBSD with older Httpd versions, and = it works >> just fine for my limited load.=20 >>=20 >> Switching to a different model will require compiling more ports = myself as >> the FreeBSD packaging system is optimized for this model. >>=20 >>=20 >> 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... >>=20 >> Thanks, >>=20 >> Bert >>=20 >>=20 >=20