haproxy/src
Willy Tarreau fd29cc537b MEDIUM: checks: avoid accumulating TIME_WAITs during checks
Some checks which do not induce a close from the server accumulate
local TIME_WAIT sockets because they're cleanly shut down. Typically
TCP probes cause this. This is very problematic when there are many
servers, when the checks are fast or when local source ports are rare.

So now we'll disable lingering on the socket instead of sending a
shutdown. Before doing this we try to drain any possibly pending data.
That way we avoid sending an RST when the server has closed first.

This change means that some servers will see more RSTs, but this is
needed to avoid local source port starvation.
2012-11-23 09:18:20 +01:00
..
acl.c MEDIUM: make the trash be a chunk instead of a char * 2012-10-29 16:57:30 +01:00
appsession.c MEDIUM: make the trash be a chunk instead of a char * 2012-10-29 16:57:30 +01:00
arg.c MEDIUM: sample: pass an empty list instead of a null for fetch args 2012-10-19 19:49:09 +02:00
auth.c CLEANUP: auth: make the code build again with DEBUG_AUTH 2012-05-10 23:25:35 +02:00
backend.c MAJOR: connection: replace struct target with a pointer to an enum 2012-11-12 00:42:33 +01:00
base64.c [MINOR] add encode/decode function for 30-bit integers from/to base64 2010-10-30 19:04:33 +02:00
buffer.c MAJOR: channel: replace the struct buffer with a pointer to a buffer 2012-10-13 09:07:52 +02:00
cfgparse.c BUILD: silence a warning on Solaris about usage of isdigit() 2012-11-22 01:04:31 +01:00
channel.c OPTIM: channel: inline channel_forward's fast path 2012-10-26 01:08:01 +02:00
checks.c MEDIUM: checks: avoid accumulating TIME_WAITs during checks 2012-11-23 09:18:20 +01:00
chunk.c CLEANUP: replace chunk_printf() with chunk_appendf() 2012-10-29 16:14:26 +01:00
compression.c MINOR: stats: report HTTP compression stats per frontend and per backend 2012-11-22 01:07:40 +01:00
connection.c BUG/MAJOR: always clear the CO_FL_WAIT_* flags after updating polling flags 2012-11-09 22:09:33 +01:00
cttproxy.c CLEANUP: cttproxy: remove a warning on undeclared close() 2012-10-05 22:18:07 +02:00
dumpstats.c MINOR: stats: report HTTP compression stats per frontend and per backend 2012-11-22 01:07:40 +01:00
ev_epoll.c MAJOR: polling: remove unused callbacks from the poller struct 2012-11-11 21:02:34 +01:00
ev_kqueue.c MAJOR: polling: remove unused callbacks from the poller struct 2012-11-11 21:02:34 +01:00
ev_poll.c MAJOR: polling: remove unused callbacks from the poller struct 2012-11-11 21:02:34 +01:00
ev_select.c MAJOR: polling: remove unused callbacks from the poller struct 2012-11-11 21:02:34 +01:00
fd.c BUG: polling: don't skip polled events in the spec list 2012-11-12 01:57:14 +01:00
freq_ctr.c [MINOR] freq_ctr: add new types and functions for periods different from 1s 2010-08-10 14:01:09 +02:00
frontend.c BUILD: stream_interface: remove si_fd() and its references 2012-11-11 20:53:29 +01:00
haproxy.c MEDIUM: adjust the maxaccept per listener depending on the number of processes 2012-11-19 12:39:59 +01:00
hdr_idx.c OPTIM/MINOR: move the hdr_idx pools out of the proxy struct 2011-10-24 18:15:04 +02:00
i386-linux-vsys.c MEDIUM: listener: add support for linux's accept4() syscall 2012-10-08 20:11:03 +02:00
lb_chash.c [MEDIUM] hash: add support for an 'avalanche' hash-type 2010-11-29 07:28:16 +01:00
lb_fas.c CLEANUP: lb_first: add reference to a paper describing the original idea 2012-04-07 09:08:45 +02:00
lb_fwlc.c [MEDIUM] build: switch ebtree users to use new ebtree version 2009-10-26 21:10:04 +01:00
lb_fwrr.c [MEDIUM] build: switch ebtree users to use new ebtree version 2009-10-26 21:10:04 +01:00
lb_map.c [BUG] url_param hash may return a down server 2010-03-12 06:22:16 +01:00
listener.c MEDIUM: adjust the maxaccept per listener depending on the number of processes 2012-11-19 12:39:59 +01:00
log.c BUG: connection: fix typo in previous commit 2012-11-12 01:14:56 +01:00
memory.c MEDIUM: memory: add the ability to poison memory at run time 2012-05-08 21:28:16 +02:00
peers.c MAJOR: connection: replace struct target with a pointer to an enum 2012-11-12 00:42:33 +01:00
pipe.c BUILD/MINOR: silent a build warning in src/pipe.c (fcntl) 2011-10-24 17:09:22 +02:00
proto_http.c MINOR: http: allow the cookie capture size to be changed 2012-11-22 00:44:27 +01:00
proto_tcp.c BUG/MEDIUM: checks: mark the check as stopped after a connect error 2012-11-23 09:03:29 +01:00
proto_uxst.c MINOR: standard: make memprintf() support a NULL destination 2012-09-24 10:53:16 +02:00
protocol.c REORG: split "protocols" files into protocol and listener 2012-09-15 22:29:32 +02:00
proxy.c BUG: proxy: fix server name lookup in get_backend_server() 2012-11-15 00:15:18 +01:00
queue.c MAJOR: connection: replace struct target with a pointer to an enum 2012-11-12 00:42:33 +01:00
raw_sock.c MINOR: splice: disable it when the system returns EBADF 2012-11-12 12:02:20 +01:00
rbtree.c [MINOR] imported the rbtree function from Linux kernel 2007-01-07 02:12:57 +01:00
regex.c [MINOR] prepare req_*/rsp_* to receive a condition 2010-01-28 18:10:50 +01:00
sample.c MEDIUM: remove remains of BUFSIZE in HTTP auth and sample conversions 2012-10-29 20:44:36 +01:00
server.c MEDIUM: server: move parsing of keyword "id" to server.c 2012-10-10 17:51:05 +02:00
session.c BUG/MEDIUM: compression: release the zlib pools between keep-alive requests 2012-11-15 16:41:22 +01:00
sessionhash.c [PATCH] appsessions: cleanup DEBUG_HASH and initialize request_counter 2008-08-13 23:43:26 +02:00
shctx.c BUILD: ssl: fix shctx build on older compilers 2012-10-18 19:03:00 +02:00
signal.c MINOR: signal: really ignore signals configured with no handler 2012-10-04 22:26:09 +02:00
ssl_sock.c MINOR: ssl: Add tune.ssl.lifetime statement in global. 2012-11-16 16:47:20 +01:00
standard.c MINOR: log: add '%Tl' to log-format 2012-10-29 11:55:26 +01:00
stick_table.c MEDIUM: stick-table: allocate the table key of size buffer size 2012-10-29 21:56:59 +01:00
stream_interface.c BUG/MAJOR: stream_interface: read0 not always handled since dev12 2012-11-21 21:59:51 +01:00
task.c [OPTIM] task: don't scan the run queue if we know it's empty 2011-09-10 20:08:49 +02:00
time.c MINOR: Date and time fonctions that don't use snprintf 2012-02-09 17:03:28 +01:00
trace.c MINOR: add a new function call tracer for debugging purposes 2012-05-26 00:12:37 +02:00
uri_auth.c [REORG] http: move the http-request rules to proto_http 2011-03-13 22:00:24 +01:00