HAProxy - Load balancer
Find a file
Willy Tarreau 91c614dd0e MEDIUM: proto_tcp: make the pause() more robust in multi-process
In multi-process, the TCP pause is very brittle and we never noticed
it because the error was lost in the upper layers. The problem is that
shutdown() may fail if another process already did it, and will cause
a process to fail to pause.

What we do here in case of error is that we double-check the socket's
state to verify if it's still accepting connections, and if not, we
can conclude that another process already did the job in parallel.

The difficulty here is that we're trying to eliminate false positives
where some OSes will silently report a success on shutdown() while they
don't shut the socket down, hence this dance of shutw/listen/shutr that
only keeps the compatible ones. Probably that a new approach relying on
connect(AF_UNSPEC) would provide better results.
2020-10-09 11:27:30 +02:00
.github DOC: overhauling github issue templates 2020-08-17 20:29:27 +02:00
contrib MEDIUM: proxy: replace proxy->state with proxy->disabled 2020-10-09 11:27:30 +02:00
doc MEDIUM: listeners: remove the now unused ZOMBIE state 2020-10-09 11:27:29 +02:00
examples CLEANUP: assorted typo fixes in the code and comments 2020-06-26 11:27:28 +02:00
include CLEANUP: proxy: remove the now unused pause_proxies() and resume_proxies() 2020-10-09 11:27:30 +02:00
reg-tests MEDIUM: proxy: remove start_proxies() 2020-10-09 11:27:30 +02:00
scripts REGTESTS: use "command" instead of "which" for better POSIX compatibility 2020-09-26 10:12:48 +02:00
src MEDIUM: proto_tcp: make the pause() more robust in multi-process 2020-10-09 11:27:30 +02:00
tests MEDIUM: config: make str2listener() not accept datagram sockets anymore 2020-09-16 22:08:08 +02:00
.cirrus.yml CI: cirrus-ci: exclude slow reg-tests 2020-07-04 06:58:14 +02:00
.gitattributes MINOR: Commit .gitattributes 2020-09-05 16:21:59 +02:00
.gitignore CLEANUP: Update .gitignore 2020-09-12 13:11:24 +02:00
.travis.yml CI: travis-ci: help Coverity to detect BUG_ON() as a real stop 2020-10-09 09:55:53 +02:00
BRANCHES DOC: assorted typo fixes in the documentation 2020-03-09 14:45:58 +01:00
CHANGELOG [RELEASE] Released version 2.3-dev5 2020-09-25 18:40:47 +02:00
CONTRIBUTING DOC: Use gender neutral language 2020-07-26 22:35:43 +02:00
INSTALL BUILD: makefile: Update feature flags for NetBSD 2020-10-09 09:53:56 +02:00
LICENSE LICENSE: add licence exception for OpenSSL 2012-09-07 13:52:26 +02:00
MAINTAINERS REORG: include: split hathreads into haproxy/thread.h and haproxy/thread-t.h 2020-06-11 10:18:56 +02:00
Makefile BUILD: makefile: Update feature flags for NetBSD 2020-10-09 09:53:56 +02:00
README DOC: create a BRANCHES file to explain the life cycle 2019-06-15 22:00:14 +02:00
ROADMAP DOC: update the outdated ROADMAP file 2019-06-15 21:59:54 +02:00
SUBVERS BUILD: use format tags in VERDATE and SUBVERS files 2013-12-10 11:22:49 +01:00
VERDATE [RELEASE] Released version 2.3-dev5 2020-09-25 18:40:47 +02:00
VERSION [RELEASE] Released version 2.3-dev5 2020-09-25 18:40:47 +02:00

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)