Re: Haproxy 2.0.4 - HTTP/2 on stats page prevents actions

2019-08-15 Thread Christopher Faulet

Le 14/08/2019 à 16:24, Marco Corte a écrit :

Hi.

Environment:
- Ubuntu 18.04
- Haproxy 2.0.4 from vbernat repository

I found a strange behaviour of the statistics page if when
alpn h2,http/1.1
is in the "bind" line of the statistics like:

frontend stats-http
mode http
option httplog
bind 10.64.69.192:443 alpn h2,http/1.1 ssl crt
/etc/ssl/private/-full.pem ssl-min-ver TLSv1.2



How to reproduce:
. select a server in the statistics web page
. choose an action (for example "Set state to DRAIN") in the drop-down
list
. click "Apply"

It seems that the POST never ends and the status is not changed.

If I remove
alpn h2,http/1.1
from the "bind" line, the actions work as usual.

I did not see this behaviour in version 1.9.x.
Is it a known behaviour?



Hi Marco,

I'm able to reproduce the bug. It also affects the H1. It is a matter of timing. 
It happens when the headers are received by HAProxy without the body of the POST 
request. If all the request is received in one time, there is no problem. But if 
the stats applet starts its processing without the body, it is blocked.


I pushed a fix. It was also backported to 2.0. For details, see the commit 
bd9e8428 (git.haproxy.org/?p=haproxy.git;a=commit;h=bd9e8428).


Thanks
--
Christopher Faulet



Haproxy 2.0.4 - HTTP/2 on stats page prevents actions

2019-08-14 Thread Marco Corte

Hi.

Environment:
- Ubuntu 18.04
- Haproxy 2.0.4 from vbernat repository

I found a strange behaviour of the statistics page if when
  alpn h2,http/1.1
is in the "bind" line of the statistics like:

frontend stats-http
  mode http
  option httplog
  bind 10.64.69.192:443 alpn h2,http/1.1 ssl crt 
/etc/ssl/private/-full.pem ssl-min-ver TLSv1.2




How to reproduce:
. select a server in the statistics web page
. choose an action (for example "Set state to DRAIN") in the drop-down 
list

. click "Apply"

It seems that the POST never ends and the status is not changed.

If I remove
  alpn h2,http/1.1
from the "bind" line, the actions work as usual.

I did not see this behaviour in version 1.9.x.
Is it a known behaviour?

Thank you

.marcoc