BUG/MEDIUM: mux-pt: Release the tasklet during an HTTP upgrade
authorChristopher Faulet <cfaulet@haproxy.com>
Tue, 3 Nov 2020 08:11:43 +0000 (09:11 +0100)
committerChristopher Faulet <cfaulet@haproxy.com>
Tue, 3 Nov 2020 15:18:57 +0000 (16:18 +0100)
commitaef36e7843916348bb0d10badff4e0775b33ca7b
tree94aa9a043458be5099293084359a9efd14d392e3
parentaa02be83a9cafe304a1b6b5e4e4f2243d4d03b53
BUG/MEDIUM: mux-pt: Release the tasklet during an HTTP upgrade

When a TCP connection is upgraded to HTTP, the passthrough multiplexer owning
the client connection is detroyed and replaced by an HTTP multiplexer. When it
happens, the connection context is changed (it is in fact the mux itself). Thus,
when the mux-pt is destroyed, the connection is not released. But, only the
connection must be kept. Everything else concerning the mux must be
released. Especially, the tasklet used for I/O subscriptions. In this part,
there was a bug and the tasklet was never released.

This patch should fix the issue #935. It must be backported as far as 2.0.

(cherry picked from commit 5a7ca29061dbc5736b53d45b9561e71807a0d05a)
Signed-off-by: Christopher Faulet <cfaulet@haproxy.com>
(cherry picked from commit 827b4fc10101847da0953a556120884f96c38aa2)
Signed-off-by: Christopher Faulet <cfaulet@haproxy.com>
src/mux_pt.c