From: Christopher Faulet Date: Tue, 16 Jul 2024 12:42:20 +0000 (+0200) Subject: BUG/MINOR: cli: Atomically inc the global request counter between CLI commands X-Git-Tag: v3.1-dev4~28 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=3cdb3fa5d95afc33465f894640217ff87b0c0562;p=thirdparty%2Fhaproxy.git BUG/MINOR: cli: Atomically inc the global request counter between CLI commands The global request counter is used to set the stream id (s->uniq_id). It is incremented at different places. And it must be atomically incremented because it is a global value. However, in the analyer dealing with CLI command response, this was not the case. It is now fixed. This patch must be backported to all stable versions. --- diff --git a/src/cli.c b/src/cli.c index a1c9323631..3b88c7872a 100644 --- a/src/cli.c +++ b/src/cli.c @@ -3219,7 +3219,7 @@ int pcli_wait_for_response(struct stream *s, struct channel *rep, int an_bit) s->target = NULL; /* re-init store persistence */ s->store_count = 0; - s->uniq_id = global.req_count++; + s->uniq_id = _HA_ATOMIC_FETCH_ADD(&global.req_count, 1); s->scf->flags &= ~(SC_FL_EOS|SC_FL_ERROR|SC_FL_ABRT_DONE|SC_FL_ABRT_WANTED); s->scf->flags &= ~SC_FL_SND_NEVERWAIT;