Hello.

We have an existing Apache server (version 2.4.25 on Debian stretch) hosting a 
web application on which we want to activate mod_http2. The Apache server is 
only a reverse HTTP proxy (using mpm_event) on our application . We followed 
the instructions (http://httpd.apache.org/docs/2.4/en/howto/http2.html) to do 
the setup and it seemed to work at first.
Our application uses a persistent Server Side Event request per browser tab 
(which is the main reason we want to switch to http/2). This persistent 
request is managed by pushpin (https://pushpin.org).

When several users play with the application for a while and open several 
browser tabs, some requests get stuck and stay in "pending" state forever. 
When a browser tab gets stuck, all further requests are stuck in other tabs 
too.

What we've tried:
  - increasing H2MaxWorkers to 120 (more than the number of users*number of 
browser tabs) improves the behavior but we still get some stuck requests
  - with H2MaxWorkers = 3 we get stuck requests with only a small number of 
opened browser tabs
  - updating Apache to 2.4.43 still get stuck requests
  - when mod_http2 is disabled we do not get stuck requests
  - if we do not keep persistent SSE requests we do not get stuck requests
  - changing the mpm to mpm_worker also seems to improve the situation: we get 
stuck requests but the response comes back with a delay (some seconds).

The Apache error log (LogLevel warn) does not print anything when stuck 
requests occur.

We understand that each persistent request occupies a mod_http2 worker, but 
not why this has an effect on other requests.

Would somebody have an idea to explain this behavior? I can provide detailed 
logs and other information on our setup if needed.

Sébastien Grignard.
Algoo SAS




---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@httpd.apache.org
For additional commands, e-mail: users-h...@httpd.apache.org

Reply via email to