]> git.ipfire.org Git - thirdparty/haproxy.git/commit
BUG/MEDIUM: stick-tables: don't loop on non-expirable entries
authorWilly Tarreau <w@1wt.eu>
Wed, 10 Sep 2025 09:27:27 +0000 (11:27 +0200)
committerWilly Tarreau <w@1wt.eu>
Wed, 10 Sep 2025 09:27:27 +0000 (11:27 +0200)
commit993c09438ba98cf0295d37a49aff1a20ba2efbda
tree0451c08016c9692169085205325df1d0ecdf0a9a
parent997d217deecd3ef9db554ed84efc945431a2f4ef
BUG/MEDIUM: stick-tables: don't loop on non-expirable entries

The stick-table expiration of ref-counted entries was insufficiently
addresse by commit 324f0a60ab ("BUG/MINOR: stick-tables: never leave
used entries without expiration"), because now entries are just requeued
where they were, so they're visited over and over for long sessions,
causing process_table_expire() to loop, eating CPU and causing lock
contention.

Here we take care of refreshing their timeer when they are met, so
that we don't meet them more than once per stick-table lifetime. It
should address at least a part of the recent degradation that Felipe
noticed in GH #3084.

Since the fix above was marked for backporting to 3.2, this one should
be backported there as well.
src/stick_table.c