BUG/MAJOR: muxes: Use the HTX mode to find the best mux for HTTP proxies only
authorChristopher Faulet <cfaulet@haproxy.com>
Wed, 24 Apr 2019 13:01:22 +0000 (15:01 +0200)
committerChristopher Faulet <cfaulet@haproxy.com>
Wed, 24 Apr 2019 13:40:02 +0000 (15:40 +0200)
commitc1918d1a8f5a8dfa0958326e897e855ec288cf22
tree3e5defa9a75d21ce487dcf25f48cc693416cd449
parent274ba6786236498de391f50675d3a2ec41a08638
BUG/MAJOR: muxes: Use the HTX mode to find the best mux for HTTP proxies only

Since the commit 1d2b586cd ("MAJOR: htx: Enable the HTX mode by default for all
proxies"), the HTX is enabled by default for all proxies, HTTP and TCP, but also
CLI and HEALTH proxies. But when the best mux is retrieved, only HTTP and TCP
modes are checked. If the TCP mode is not explicitly set, it is considered as an
HTTP proxy. It is an hidden bug introduced when the option "http-use-htx" was
added. It has no effect until the commit 1d2b586cd. But now, when a stats socket
is created for the master process, the mux h1 is installed on all incoming
connections to the CLI proxy, leading to segfaults because HTX operations are
performed on raw buffers.

So to fix the buf, when a mux is installed, all proxies are considered as TCP
proxies, except HTTP ones. This way, CLI and HEALTH proxies will be handled as
TCP proxies.

This patch must be backported to 1.9 although it has no effect. It is safer to
not keep hidden bugs.
include/proto/connection.h