mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2025-03-02 09:30:36 +00:00
haproxy public development tree
We tried hard to make sure we report threads as not stuck at various crucial places, but one of them is special, it's the listener_accept() function. The reason it is special is because it will loop a certain number of times (default: 64) accepting incoming connections, allocating resources, dispatching them to other threads or running L4 rules on them, and while all of this is supposed to be extremely fast, when the machine slows down or runs low on memory, the expectedly small delays in malloc() caused by contention with other threads can quickly accumulate and suddenly become critical to the point of triggering the watchdog. Furthermore, it is technically possible to trigger this by pure configuration by setting a huge tune.maxaccept value, which should not be possible. Given that each operation isn't related to the same task but to a different one each time, it is appropriate to mark the thread as not stuck each time it accepts new work that possibly gets dispatched to other threads which execute it. This looks like this could be a good reason for the issue reported in issue #388. This fix must be backported to 2.0. |
||
---|---|---|
.github | ||
contrib | ||
doc | ||
ebtree | ||
examples | ||
include | ||
reg-tests | ||
scripts | ||
src | ||
tests | ||
.cirrus.yml | ||
.gitignore | ||
.travis.yml | ||
BRANCHES | ||
CHANGELOG | ||
CONTRIBUTING | ||
INSTALL | ||
LICENSE | ||
MAINTAINERS | ||
Makefile | ||
README | ||
ROADMAP | ||
SUBVERS | ||
VERDATE | ||
VERSION |
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)