mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-09-21 13:51:26 +02:00
In 1.9 with commit 627505d36 ("MINOR: freq_ctr: add swrate_add_scaled() to work with large samples") we got the ability to indicate when adding some values that they represent a number of samples. However there is an issue in the calculation which is that the number of samples that is added to the sum before the division in order to avoid fading away too fast, is multiplied by the scale. The problem it causes is that this is done in the negative part of the expression, and that as soon if the sum of old_sum and v*s is too small (e.g. zero), we end up with a negative value of -s. This is visible in "show pools" which occasionally report a very large value on "needed_avg" since 2.9, though the bug has been there for longer. Indeed in 2.9 since they're hashed in buckets, it suffices that any thread got one such error once for the sum to be wrong. One possible impact is memory usage not shrinking after a short burst due to pools refraining from releasing objects, believing they don't have enough. This must be backported to all versions. Note that the opportunistic version can be dropped before 2.8.
The HAProxy documentation has been split into a number of different files for ease of use. Please refer to the following files depending on what you're looking for : - INSTALL for instructions on how to build and install HAProxy - BRANCHES to understand the project's life cycle and what version to use - LICENSE for the project's license - CONTRIBUTING for the process to follow to submit contributions The more detailed documentation is located into the doc/ directory : - doc/intro.txt for a quick introduction on HAProxy - doc/configuration.txt for the configuration's reference manual - doc/lua.txt for the Lua's reference manual - doc/SPOE.txt for how to use the SPOE engine - doc/network-namespaces.txt for how to use network namespaces under Linux - doc/management.txt for the management guide - doc/regression-testing.txt for how to use the regression testing suite - doc/peers.txt for the peers protocol reference - doc/coding-style.txt for how to adopt HAProxy's coding style - doc/internals for developer-specific documentation (not all up to date)
Description
Languages
C
98.1%
Shell
0.8%
Makefile
0.5%
Lua
0.2%
Python
0.2%