From 3cdb3fa5d95afc33465f894640217ff87b0c0562 Mon Sep 17 00:00:00 2001 From: Christopher Faulet Date: Tue, 16 Jul 2024 14:42:20 +0200 Subject: [PATCH] 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. --- src/cli.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/cli.c b/src/cli.c index a1c932363..3b88c7872 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;