mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2025-04-01 14:38:28 +00:00
BUG/MINOR: session: atomically increment the tracked sessions counter
In session_count_new() the tracked counter was still incremented with a "++" outside of any lock, resulting in occasional slightly off values such as the following: # table: foo, type: string, size:1000, used:1 0xb2a398: key=127.1.2.3 use=0 exp=86398318 sess_cnt=999959 http_req_cnt=1000004 Now with the correct atomic increment: # table: foo, type: string, size:1000, used:1 0x7f82a4026d38: key=127.1.2.3 use=0 exp=86399294 sess_cnt=1000004 http_req_cnt=1000004 This can be backported to 1.8.
This commit is contained in:
parent
aba507334b
commit
9805859f24
@ -118,7 +118,7 @@ static void session_count_new(struct session *sess)
|
||||
|
||||
ptr = stktable_data_ptr(stkctr->table, stkctr_entry(stkctr), STKTABLE_DT_SESS_CNT);
|
||||
if (ptr)
|
||||
stktable_data_cast(ptr, sess_cnt)++;
|
||||
HA_ATOMIC_ADD(&stktable_data_cast(ptr, sess_cnt), 1);
|
||||
|
||||
ptr = stktable_data_ptr(stkctr->table, stkctr_entry(stkctr), STKTABLE_DT_SESS_RATE);
|
||||
if (ptr)
|
||||
|
Loading…
Reference in New Issue
Block a user