haproxy/include/proto
Willy Tarreau f8e8b76ed3 BUG/MEDIUM: zero-weight servers must not dequeue requests from the backend
It was reported that a server configured with a zero weight would
sometimes still take connections from the backend queue. This issue is
real, it happens this way :
  1) the disabled server accepts a request with a cookie
  2) many cookie-less requests accumulate in the backend queue
  3) when the disabled server completes its request, it checks its own
     queue and the backend's queue
  4) the server takes a pending request from the backend queue and
     processes it. In response, the server's cookie is assigned to
     the client, which ensures that some requests will continue to
     be served by this server, leading back to point 1 above.

The fix consists in preventing a zero-weight server from dequeuing pending
requests from the backend. Making use of srv_is_usable() in such tests makes
the tests more robust against future changes.

This fix must be backported to 1.4 and 1.3.
2012-01-20 16:18:53 +01:00
..
acl.h MINOR: acl: include pattern.h to make pattern migration more transparent 2011-12-30 17:33:25 +01:00
auth.h [REORG] http: move the http-request rules to proto_http 2011-03-13 22:00:24 +01:00
backend.h BUG/MEDIUM: correctly disable servers tracking another disabled servers. 2012-01-20 16:18:30 +01:00
buffers.h CLEANUP: kill buffer_replace() and use an inline instead 2011-11-28 21:01:28 +01:00
checks.h [MEDIUM] add a maintenance mode to servers 2010-01-31 23:33:18 +01:00
cttproxy.h
dumpstats.h [MINOR] More flexible clearing of stick table 2011-06-17 11:39:29 +02:00
fd.h
freq_ctr.h [MINOR] freq_ctr: add new types and functions for periods different from 1s 2010-08-10 14:01:09 +02:00
frontend.h [MINOR] frontend: add a make_proxy_line function 2011-03-20 10:15:22 +01:00
hdr_idx.h OPTIM/MINOR: move the hdr_idx pools out of the proxy struct 2011-10-24 18:15:04 +02:00
lb_chash.h [MEDIUM] backend: implement consistent hashing variation 2009-10-09 07:17:58 +02:00
lb_fwlc.h [CLEANUP] backend: move LB algos to individual files 2009-10-01 11:19:37 +02:00
lb_fwrr.h [CLEANUP] backend: move LB algos to individual files 2009-10-01 11:19:37 +02:00
lb_map.h [MINOR] lb_map: reorder code in order to ease integration of new hash functions 2009-10-01 21:11:15 +02:00
log.h [BUILD] add format(printf) to printf-like functions 2009-04-03 12:01:47 +02:00
pattern.h MINOR: pattern: export the global temporary pattern 2011-12-30 17:33:25 +01:00
peers.h [CLEANUP] peers.h: fix declarations 2011-06-18 20:27:19 +02:00
pipe.h
port_range.h [MEDIUM] add support for binding to source port ranges during connect 2009-06-10 12:23:32 +02:00
proto_http.h MEDIUM: http: add support for sending the server's name in the outgoing request 2012-01-05 15:17:31 +01:00
proto_tcp.h MINOR: remove the client/server side distinction in SI addresses 2011-09-23 10:54:59 +02:00
proto_uxst.h [MEDIUM] separate protocol-level accept() from the frontend's 2010-06-14 10:53:11 +02:00
protocols.h [MINOR] listeners: add support for queueing resource limited listeners 2011-07-24 22:03:52 +02:00
proxy.h [MEDIUM] stats: add the ability to enable/disable/shutdown a frontend at runtime 2011-09-07 22:50:52 +02:00
queue.h BUG/MEDIUM: zero-weight servers must not dequeue requests from the backend 2012-01-20 16:18:53 +01:00
server.h [OPTIM] counters: move some max numbers to the counters struct 2009-10-04 23:26:19 +02:00
session.h [MEDIUM] session: make session_shutdown() an independant function 2011-09-07 23:01:56 +02:00
signal.h [MEDIUM] signals: support redistribution of signal zero when stopping 2010-08-27 18:26:11 +02:00
stick_table.h [MEDIUM] Create updates tree on stick table to manage sync. 2010-11-11 09:29:08 +01:00
stream_interface.h [MAJOR] session: remove the ->srv pointer from struct session 2011-03-10 23:32:17 +01:00
stream_sock.h [MEDIUM] backend: initialize the server stream_interface upon connect() 2010-06-14 10:53:15 +02:00
task.h [MAJOR] proxy: finally get rid of maintain_proxies() 2011-07-25 16:33:49 +02:00
template.h