From: Willy Tarreau Date: Tue, 15 Jun 2021 14:39:22 +0000 (+0200) Subject: BUG/MINOR: ssl: use atomic ops to update global shctx stats X-Git-Tag: v2.3.11~38 X-Git-Url: http://git.haproxy.org/?a=commitdiff_plain;h=0123d48;p=haproxy-2.3.git BUG/MINOR: ssl: use atomic ops to update global shctx stats The global shctx lookups and misses was updated without using atomic ops, so the stats available in "show info" are very likely off by a few units over time. This should be backported as far as 1.8. Versions without _HA_ATOMIC_INC() can use HA_ATOMIC_ADD(,1). (cherry picked from commit 4c19e996218f6c205c1716a0b4718f9bced7f893) Signed-off-by: Willy Tarreau (cherry picked from commit 37d69399648e489fea9f93b7e9fae02dfa59acbb) [wt: s/_HA_ATOMIC_INC/_HA_ATOMIC_ADD(,1)] Signed-off-by: Willy Tarreau --- diff --git a/src/ssl_sock.c b/src/ssl_sock.c index 09b8d08..e5f6029 100644 --- a/src/ssl_sock.c +++ b/src/ssl_sock.c @@ -3845,7 +3845,7 @@ SSL_SESSION *sh_ssl_sess_get_cb(SSL *ssl, __OPENSSL_110_CONST__ unsigned char *k SSL_SESSION *sess; struct shared_block *first; - global.shctx_lookups++; + _HA_ATOMIC_ADD(&global.shctx_lookups, 1); /* allow the session to be freed automatically by openssl */ *do_copy = 0; @@ -3865,7 +3865,7 @@ SSL_SESSION *sh_ssl_sess_get_cb(SSL *ssl, __OPENSSL_110_CONST__ unsigned char *k if (!sh_ssl_sess) { /* no session found: unlock cache and exit */ shctx_unlock(ssl_shctx); - global.shctx_misses++; + _HA_ATOMIC_ADD(&global.shctx_misses, 1); return NULL; }