#1009906 haproxy: HTTPS proxyfied requests randomly delayed by 50 seconds (default timeout server)

Package:
haproxy
Source:
haproxy
Description:
fast and reliable load balancing reverse proxy
Submitter:
Ludovic Pouzenc
Date:
2022-06-10 11:45:03 UTC
Severity:
important
#1009906#5
Date:
2022-04-20 13:00:05 UTC
From:
To:
Dear Maintainer,

We have a (Wordpress) PHP web-site hosted on 3 LAMP nodes. We use haproxy to load-balance the incomming web trafic.
We've got 240k lines of apache2 access log yesterday.

The problem can be reproduced with a test infra without any concurrent user
 and a basic test.php thats readfile("jquery.min.js")
 and a basic index.html referencing multiple (24) times the test.php
 to have Firefox starting multiple HTTP requests in parallel.

The problem is hard or impossible to trigger with Firefox with http2 enabled.
The problem is easy to reproduce with firefox forced in http/1.1 mode.
The problem doesn't show with a echo "Hello World" in test.php,
 it seems that the response size is important. 30kio is enough to trigger it for sure.

Out of 25 requests (including GET /), Firefox will get results about 20 of them, and about 4 will be delayed by a huge amount of 50 seconds.
(50 seconds if haproxy have : default timeout server 50000).

I tried nbproc 1 and nbthreads 1 with no improvements.
I tried haproxy 2.4.15-1~bpo11+1 and it DOES fix the situation without changing anything else.

  # apt install -t bullseye-backports haproxy

I didn't find any bugreports mentionning major troubles in "basic" usage of haproxy.
I post it here to get someone else luck with Googling about the troubles I hit.

I can't find exactly what line in haproxy changelog could correspond to this.
I think I can try, if useful, to find the smallest configuration that breaks.
PHP seems unrelated. Direct access to the apache don't show up any trouble.

It may be broken in Ubuntu 21.04 (hirsute) and Ubuntu 21.10 (impish) also.

Thanks for all the fish,
Ludovic

#1009906#10
Date:
2022-06-10 11:33:01 UTC
From:
To:
I found the same problem and the same fix. i suspect the delay is due to
the browser retrying.

one thing i noticed is that the log does not show the missing request
before it is retried.


fourty-two!
Ronny Aasen