mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2024-12-26 06:32:13 +00:00
haproxy public development tree
b4734c2bd7
As reported on github issue #2491, there's a very strange situation where epoll_wait() appears to be reported EPOLLERR only (and not IN/OUT/HUP etc as normally happens with EPOLLERR), and when connect() is called again to check the state of the ongoing connection, it returns EALREADY, basically saying "no news, please wait". This obviously triggers a wakeup loop. For now it has remained impossible to reproduce this issue outside of the reporter's environment, but that's definitely something that is impossible to get out from. The workaround here is to address the lowest level cause we can act on, which is to avoid returning to wait if EPOLLERR was returned. Indeed, in this case we know it will loop, so we must definitely take this one into account. We only do that after connect() asks us to wait, so that a properly established connection with a queued error at the end of an exchange will not be diverted and will be handled as usual. This should be backported to approximately all versions, at least as far as 2.4 according to the reporter who observed it there. Thanks to @donnyxray for their useful captures isolating the problem. |
||
---|---|---|
.github | ||
addons | ||
admin | ||
dev | ||
doc | ||
examples | ||
include | ||
reg-tests | ||
scripts | ||
src | ||
tests | ||
.cirrus.yml | ||
.gitattributes | ||
.gitignore | ||
.mailmap | ||
.travis.yml | ||
BRANCHES | ||
BSDmakefile | ||
CHANGELOG | ||
CONTRIBUTING | ||
INSTALL | ||
LICENSE | ||
MAINTAINERS | ||
Makefile | ||
README | ||
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)