]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
MINOR: h2: explain committed_extra_streams dec on h2_init() error
authorAmaury Denoyelle <adenoyelle@haproxy.com>
Wed, 13 May 2026 06:02:09 +0000 (08:02 +0200)
committerAmaury Denoyelle <adenoyelle@haproxy.com>
Wed, 20 May 2026 07:52:50 +0000 (09:52 +0200)
h2_init() is now responsible to increment committed_extra_streams for
new frontend connections, in relation to the newly implemented
stream-elasticity feature. In case of an early error, a mirroring
decrement is executed on fail_stream label.

However, for now this error label can only be selected via BE conns. In
fact, it's not yet possible for h2_init() to fail after the extra
streams increment.

However, the decrement operation is kept to prevent any omissions in
case of future evolutions of h2_init() error path. To prevent reporting
of a possible dead code, add an extra comment which summarizes the
situation.

src/mux_h2.c

index 3708925a6440662dcb030a311963dfc8269e1455..1c29cf5cc549aa10b3371376670bba63b7c970cc 100644 (file)
@@ -1527,6 +1527,9 @@ static int h2_init(struct connection *conn, struct proxy *prx, struct session *s
        TRACE_LEAVE(H2_EV_H2C_NEW, conn);
        return 0;
   fail_stream:
+       /* Unnecessary code for now as fail_stream only occurs with BE conns.
+        * Still better though to keep it to prevent future mistakes.
+        */
        if (!(h2c->flags & H2_CF_IS_BACK) && h2c->streams_hard_limit > 1)
                _HA_ATOMIC_SUB(&tg_ctx->committed_extra_streams, h2c->streams_hard_limit - 1);
        hpack_dht_free(h2c->ddht);