Launchpad has imported 8 comments from the remote bug at
https://bz.apache.org/bugzilla/show_bug.cgi?id=65731.

If you reply to an imported comment from within Launchpad, your comment
will be sent to the remote bug automatically. Read more about
Launchpad's inter-bugtracker facilities at
https://help.launchpad.net/InterBugTracking.

------------------------------------------------------------------------
On 2021-12-08T17:38:46+00:00 Antonios-m wrote:

When requesting a simple image file with HTTP2 every time
MaxRequestsPerChild is reached, an empty response is sent to the client.
This is even reproducible.

Server Version: Apache/2.4.41 (Ubuntu) OpenSSL/1.1.1f
Server MPM: event
OS: Ubuntu 20.04

Server Version: Apache/2.4.29 (Ubuntu) OpenSSL/1.1.1
Server MPM: worker
OS: Ubuntu 18.04

Same issue exists with mpm_event and mpm_worker.

My configuration:

<IfModule mpm_event_module>
    StartServers 8
    MinSpareThreads 4
    MaxSpareThreads 12
    ThreadLimit 64
    ThreadsPerChild 16
    MaxRequestsPerChild 100
    ServerLimit 64
    MaxClients 64
</IfModule>

mod_http2 no custom configuration in use.

Test command:
for i in {1..2000}; do if [[ $(curl -o /dev/null -s -k --http2 
https://example.net/2101583.jpg?test=$i -w '%{size_download}') == 0 ]]; then 
break; fi; done

Access log output:
8.8.8.8 - - [08/Dec/2021:18:20:32 +0100] "GET /2101583.jpg?fakeVar=33 HTTP/2.0" 
200 17115 "-" "curl/7.68.0"
8.8.8.8 - - [08/Dec/2021:18:20:33 +0100] "GET /2101583.jpg?fakeVar=34 HTTP/2.0" 
200 17115 "-" "curl/7.68.0"
8.8.8.8 - - [08/Dec/2021:18:20:33 +0100] "GET /2101583.jpg?fakeVar=35 HTTP/2.0" 
200 0 "-" "curl/7.68.0"
8.8.8.8 - - [08/Dec/2021:18:20:33 +0100] "GET /2101583.jpg?fakeVar=36 HTTP/2.0" 
200 17115 "-" "curl/7.68.0"
8.8.8.8 - - [08/Dec/2021:18:20:33 +0100] "GET /2101583.jpg?fakeVar=37 HTTP/2.0" 
200 17115 "-" "curl/7.68.0"
8.8.8.8 - - [08/Dec/2021:18:20:33 +0100] "GET /2101583.jpg?fakeVar=38 HTTP/2.0" 
200 17115 "-" "curl/7.68.0"
8.8.8.8 - - [08/Dec/2021:18:20:33 +0100] "GET /2101583.jpg?fakeVar=39 HTTP/2.0" 
200 17115 "-" "curl/7.68.0"
...
8.8.8.8 - - [08/Dec/2021:18:20:37 +0100] "GET /2101583.jpg?fakeVar=135 
HTTP/2.0" 200 0 "-" "curl/7.68.0"
...
8.8.8.8 - - [08/Dec/2021:18:20:42 +0100] "GET /2101583.jpg?fakeVar=235 
HTTP/2.0" 200 0 "-" "curl/7.68.0"
...
8.8.8.8 - - [08/Dec/2021:18:20:47 +0100] "GET /2101583.jpg?fakeVar=335 
HTTP/2.0" 200 0 "-" "curl/7.68.0"

Reply at:
https://bugs.launchpad.net/ubuntu/+source/apache2/+bug/1969629/comments/0

------------------------------------------------------------------------
On 2021-12-09T08:24:11+00:00 Rpluem wrote:

Does this happen as well with 2.4.51 compiled from source?

Reply at:
https://bugs.launchpad.net/ubuntu/+source/apache2/+bug/1969629/comments/1

------------------------------------------------------------------------
On 2021-12-09T12:00:50+00:00 Antonios-m wrote:

Created attachment 38125
Apache Trace8 Log

Reply at:
https://bugs.launchpad.net/ubuntu/+source/apache2/+bug/1969629/comments/2

------------------------------------------------------------------------
On 2021-12-09T12:01:45+00:00 Antonios-m wrote:

Yes, and with 2.4.51 the responses with an empty body wasn't logged in
the access log.

When this happens curl reports "curl: (16) Error in the HTTP2 framing
layer". Attached is the trace8 output of such a request.

Server version: Apache/2.4.51 (Unix)
Server built:   Dec  9 2021 12:24:50
Server's Module Magic Number: 20120211:118
Server loaded:  APR 1.6.5, APR-UTIL 1.6.1
Compiled using: APR 1.6.5, APR-UTIL 1.6.1
Architecture:   64-bit
Server MPM:     event
  threaded:     yes (fixed thread count)
    forked:     yes (variable process count)

Reply at:
https://bugs.launchpad.net/ubuntu/+source/apache2/+bug/1969629/comments/3

------------------------------------------------------------------------
On 2021-12-09T12:27:30+00:00 Icing wrote:

Thanks for the log. I can see that mod_http2 sees the MPM stopping and
sends a GOAWAY frame *before* the HTTP/2 session has been fully started.
That is indeed a violation of the H2 protocol.

Working on a test and patch.

Reply at:
https://bugs.launchpad.net/ubuntu/+source/apache2/+bug/1969629/comments/4

------------------------------------------------------------------------
On 2021-12-09T14:17:04+00:00 Icing wrote:

Created attachment 38127
patch on 2.4.x code base

Proposed fix for 2.4.x code base.

Reply at:
https://bugs.launchpad.net/ubuntu/+source/apache2/+bug/1969629/comments/5

------------------------------------------------------------------------
On 2021-12-09T14:19:22+00:00 Icing wrote:

I was able to reproduce this in a test case and made a fix to be
backported to 2.4.x in the next release.

I attached the patch for the 2.4.x codebase, if you can build from
source. If you want to build from the github module version, there is
<https://github.com/icing/mod_h2/releases/tag/v1.15.27>.

Reply at:
https://bugs.launchpad.net/ubuntu/+source/apache2/+bug/1969629/comments/6

------------------------------------------------------------------------
On 2021-12-13T10:37:02+00:00 Minfrin-s wrote:

Backported to v2.4.52:

 *) mod_http2: fixes PR65731 and https://github.com/icing/mod_h2/issues/212
    trunk patch: na, fixed on 2.4.x source base
    backport PR: https://github.com/apache/httpd/pull/281
    +1: icing, minfrin, ylavic

Reply at:
https://bugs.launchpad.net/ubuntu/+source/apache2/+bug/1969629/comments/7


** Changed in: apache2
       Status: Unknown => Fix Released

** Changed in: apache2
   Importance: Unknown => Medium

** Bug watch added: github.com/icing/mod_h2/issues #212
   https://github.com/icing/mod_h2/issues/212

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1969629

Title:
  Apache 2.4.x: mod_http2 sends empty response after MaxRequestsPerChild

To manage notifications about this bug go to:
https://bugs.launchpad.net/apache2/+bug/1969629/+subscriptions


-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to