From af5336fd238ad2dcac8c09c45720152e36be7bb9 Mon Sep 17 00:00:00 2001 From: Christopher Faulet Date: Mon, 12 Sep 2022 07:46:11 +0200 Subject: [PATCH] BUG/MINOR: mux-h1: Increment open_streams counter when H1 stream is created Since this counter was added, it was incremented at the wrong place for client streams. It was incremented when the stream-connector (formely the conn-stream) was created while it should be done when the H1 stream is created. Thus, on parsing error, on H1>H2 upgrades or TCP>H1 upgrades, the counter is not incremented. However, it is always decremented when the H1 stream is destroyed. On bakcned side, there is no issue. This patch must be backported to 2.6. --- src/mux_h1.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/mux_h1.c b/src/mux_h1.c index 441ae3ee4..02ac4bbaa 100644 --- a/src/mux_h1.c +++ b/src/mux_h1.c @@ -737,9 +737,6 @@ static struct stconn *h1s_new_sc(struct h1s *h1s, struct buffer *input) goto err; } - HA_ATOMIC_INC(&h1c->px_counters->open_streams); - HA_ATOMIC_INC(&h1c->px_counters->total_streams); - h1c->flags = (h1c->flags & ~H1C_F_ST_EMBRYONIC) | H1C_F_ST_ATTACHED | H1C_F_ST_READY; TRACE_LEAVE(H1_EV_STRM_NEW, h1c->conn, h1s); return h1s_sc(h1s); @@ -837,6 +834,9 @@ static struct h1s *h1c_frt_stream_new(struct h1c *h1c, struct stconn *sc, struct if (h1c->px->options2 & PR_O2_REQBUG_OK) h1s->req.err_pos = -1; + HA_ATOMIC_INC(&h1c->px_counters->open_streams); + HA_ATOMIC_INC(&h1c->px_counters->total_streams); + h1c->idle_exp = TICK_ETERNITY; h1_set_idle_expiration(h1c); TRACE_LEAVE(H1_EV_H1S_NEW, h1c->conn, h1s);