mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-08-06 23:27:04 +02:00
When a backend H2 connection is waiting the connection is fully established, nothing is sent. However, it remains useful to detect connection error at this stage. It is especially important to release H2 connection on connect error. Be able to set H2_CF_ERR_PENDiNG or H2_CF_ERROR flags when the underlying connection is not fully established will exclude the H2C to be inserted in a idle list in h2_detach(). Without this fix, an H2C in PREFACE state and relying on a connection in error can be inserted in the safe list. Of course, it will be purged if not reused. But in the mean time, it can be reused. When this happens, the connection remains in error and nothing happens. At the end a connection error is returned to the client. On low traffic, we can imagine a scenario where this dead connection is the only idle connection. If it is always reused before being purged, no connection to the server is possible. In addition, h2c_is_dead() is updated to declare as dead any H2 connection with a pending error if its state is PREFACE or SETTINGS1 (thus if no SETTINGS frame was received yet). This patch should fix the issue #2092. It must be backported as far as 2.6. |
||
---|---|---|
.github | ||
addons | ||
admin | ||
dev | ||
doc | ||
examples | ||
include | ||
reg-tests | ||
scripts | ||
src | ||
tests | ||
.cirrus.yml | ||
.gitattributes | ||
.gitignore | ||
.mailmap | ||
.travis.yml | ||
BRANCHES | ||
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)