haproxy/include/proto
Willy Tarreau 00f18a36b6 BUG/MINOR: server: fix logic flaw in idle connection list management
With variable connection limits, it's not possible to accurately determine
whether the mux is still in use by comparing usage and max to be equal due
to the fact that one determines the capacity and the other one takes care
of the context. This can cause some connections to be dropped before they
reach their stream ID limit.

It seems it could also cause some connections to be terminated with
streams still alive if the limit was reduced to match the newly computed
avail_streams() value, though this cannot yet happen with existing muxes.

Instead let's switch to usage reports and simply check whether connections
are both unused and available before adding them to the idle list.

This should be backported to 1.9.
2019-01-31 19:38:25 +01:00
..
acl.h MINOR: acl: Pass the ACLs as an explicit parameter of build_acl_cond 2017-10-31 11:36:12 +01:00
action.h MAJOR: chunks: replace struct chunk with struct buffer 2018-07-19 16:23:43 +02:00
activity.h MINOR: activity: add configuration and CLI support for "profiling.tasks" 2018-11-22 11:48:51 +01:00
applet.h MEDIUM: appctx: check for allocation attempts in buffer allocation callbacks 2018-11-11 10:18:37 +01:00
arg.h MINOR: sample: Moves ARGS underlying type from 32 to 64 bits. 2016-03-15 22:11:52 +01:00
auth.h MEDIUM: pattern: The match function browse itself the list or the tree. 2014-03-17 18:06:07 +01:00
backend.h MAJOR: connections: Defer mux creation for outgoing connection if alpn is set. 2018-11-22 19:52:23 +01:00
channel.h MINOR: channel/htx: Add the HTX version of channel_truncate/erase 2019-01-08 12:06:55 +01:00
checks.h BUILD: threads: Rename SPIN/RWLOCK macros using HA_ prefix 2017-11-07 11:10:24 +01:00
cli.h MINOR: cli: add a few missing includes in proto/cli.h 2018-11-22 11:47:53 +01:00
compression.h REORG: filters: Prepare creation of the HTTP compression filter 2016-02-09 14:53:15 +01:00
connection.h BUG/MEDIUM: connection: properly unregister the mux on failed initialization 2019-01-10 19:47:43 +01:00
dns.h BUG/MINOR: dns: Don't try to get the server lock if it's already held. 2017-11-06 18:34:24 +01:00
fd.h REORG: time/activity: move activity measurements to activity.{c,h} 2018-11-22 11:48:41 +01:00
filters.h MINOR: filters: Export the name of known filters 2018-12-11 17:09:31 +01:00
flt_http_comp.h MINOR: compression: Rename the function check_legacy_http_comp_flt() 2018-12-11 17:09:31 +01:00
freq_ctr.h MINOR: freq_ctr: add swrate_add_scaled() to work with large samples 2018-10-22 08:13:57 +02:00
frontend.h REORG/MAJOR: session: rename the "session" entity to "stream" 2015-04-06 11:23:56 +02:00
hdr_idx.h CLEANUP: pools: rename all pool functions and pointers to remove this "2" 2017-11-24 17:49:53 +01:00
hlua_fcn.h MINOR: lua: add utility function for check boolean argument 2016-11-24 21:35:10 +01:00
hlua.h BUILD/MINOR: lua: ensure that hlua_ctx_destroy is properly defined 2015-06-17 20:18:54 +02:00
http_fetch.h MINOR: http_fetch: Add smp_prefetch_htx 2018-11-18 22:09:00 +01:00
http_htx.h CLEANUP: h1: remove some occurrences of unneeded h1.h inclusions 2018-12-11 17:15:13 +01:00
http_rules.h REORG: http: move HTTP rules parsing to http_rules.c 2018-10-02 18:28:05 +02:00
lb_chash.h MINOR: lb: allow redispatch when using consistent hash 2019-01-02 20:22:17 +01:00
lb_fas.h MEDIUM: backend: add the 'first' balancing algorithm 2012-02-21 22:27:27 +01:00
lb_fwlc.h
lb_fwrr.h
lb_map.h MEDIUM: threads/lb: Make LB algorithms (lb_*.c) thread-safe 2017-10-31 13:58:31 +01:00
listener.h BUG/MEDIUM: threads/unix: Fix a deadlock when a listener is temporarily disabled 2018-03-16 11:19:07 +01:00
log.h MEDIUM: initcall: use initcalls for a few initialization functions 2018-11-26 19:50:32 +01:00
map.h MINOR: samples: rename some struct member from "smp" to "data" 2015-08-20 17:13:46 +02:00
mux_pt.h MEDIUM: connection: start to introduce a mux layer between xprt and data 2017-10-31 18:03:23 +01:00
obj_type.h MINOR: objtype: report a few missing types in names and base pointers 2018-12-18 16:31:10 +01:00
openssl-compat.h MINOR: ssl: generate-certificates for BoringSSL 2018-10-08 09:42:34 +02:00
pattern.h BUG/MEDIUM: map/acl: fix unwanted flags inheritance. 2017-07-04 10:45:53 +02:00
payload.h REORG/MAJOR: session: rename the "session" entity to "stream" 2015-04-06 11:23:56 +02:00
peers.h MINOR: peers: Make outgoing connection to SSL/TLS peers work. 2019-01-18 14:26:21 +01:00
pipe.h
port_range.h
proto_http.h MINOR: payload/htx: Adapt smp_fetch_len to be HTX aware 2018-12-14 16:03:34 +01:00
proto_sockpair.h MEDIUM: protocol: sockpair protocol 2018-09-12 07:20:17 +02:00
proto_tcp.h MINOR: connection: make conn_sock_drain() work for all socket families 2018-08-24 14:45:46 +02:00
proto_udp.h CLEANUP: fix inconsistency between fd->iocb, proto->accept and accept() 2016-04-14 11:18:22 +02:00
protocol.h CLEANUP: Fix a typo in the protocol header file 2018-12-02 18:42:49 +01:00
proxy.h REORG: config: extract the proxy parser into cfgparse-listen.c 2018-11-19 06:47:09 +01:00
queue.h MEDIUM: init: use initcall for all fixed size pool creations 2018-11-26 19:50:32 +01:00
raw_sock.h CLEANUP: connection: unexport raw_sock and ssl_sock 2016-12-22 23:26:38 +01:00
sample.h CLEANUP: Fix typos in the sample subsystem 2018-11-18 22:26:42 +01:00
server.h BUG/MINOR: server: fix logic flaw in idle connection list management 2019-01-31 19:38:25 +01:00
session.h BUG/MEDIUM: connections: Don't forget to remove CO_FL_SESS_IDLE. 2019-01-31 19:38:25 +01:00
shctx.h MINOR: shctx: Change max. object size type to unsigned int. 2018-10-26 04:54:40 +02:00
signal.h MEDIUM: initcall: use initcalls for a few initialization functions 2018-11-26 19:50:32 +01:00
spoe.h CLEANUP: Fix typos in the spoe subsystem 2018-11-18 22:26:42 +01:00
ssl_sock.h MINOR: ssl: add support of aes256 bits ticket keys on file and cli. 2019-01-14 19:32:58 +01:00
stats.h MINOR: stats: Add missing include 2018-10-12 16:00:32 +02:00
stick_table.h MINOR: stktable: provide an unchecked version of stktable_data_ptr() 2018-09-20 11:42:15 +02:00
stream_interface.h MINOR: stream-int: add a new flag to mention that we want the connection to be killed 2019-01-31 19:38:25 +01:00
stream.h BUG/MINOR: stick_table: Prevent conn_cur from underflowing 2019-01-15 15:34:49 +01:00
task.h BUG/MINOR: task: fix possibly missed event in inter-thread wakeups 2019-01-28 15:03:04 +01:00
tcp_rules.h MINOR: action: Use trk_idx instead of tcp/http_trk_idx 2017-10-31 11:36:12 +01:00
template.h
vars.h MINOR: vars: Add 'unset-var' action/converter 2016-11-09 22:57:01 +01:00