haproxy/include/types
Christopher Faulet e6006245de BUG/MEDIUM: filters: Fix channels synchronization in flt_end_analyze
When a filter is used, there are 2 channel's analyzers to surround all the
others, flt_start_analyze and flt_end_analyze. This is the good place to acquire
and release resources used by filters, when needed. In addition, the last one is
used to synchronize the both channels, especially for HTTP streams. We must wait
that the analyze is finished for the both channels for an HTTP transaction
before restarting it for the next one.

But this part was buggy, leading to unexpected behaviours. First, depending on
which channel ends first, the request or the response can be switch in a
"forward forever" mode. Then, the HTTP transaction can be cleaned up too early,
while a processing is still in progress on a channel.

To fix the bug, the flag CF_FLT_ANALYZE has been added. It is set on channels in
flt_start_analyze and is kept if at least one filter is still analyzing the
channel. So, we can trigger the channel syncrhonization if this flag was removed
on the both channels. In addition, the flag TX_WAIT_CLEANUP has been added on
the transaction to know if the transaction must be cleaned up or not during
channels syncrhonization. This way, we are sure to reset everything once all the
processings are finished.

This patch should be backported in 1.7.
2017-03-15 19:09:06 +01:00
..
acl.h
action.h MINOR: http: custom status reason. 2017-01-06 11:57:44 +01:00
applet.h MINOR: spoe: Remove SPOE details from the appctx structure 2017-03-09 15:32:55 +01:00
arg.h MINOR: http/conf: store the use_backend configuration file and line for logs 2016-11-25 07:15:09 +01:00
auth.h
backend.h
capture.h
channel.h BUG/MEDIUM: filters: Fix channels synchronization in flt_end_analyze 2017-03-15 19:09:06 +01:00
checks.h MAJOR: check: find out which port to use for health check at run time 2016-09-11 08:12:13 +02:00
cli.h CLEANUP: cli: rename STAT_CLI_* to CLI_ST_* 2016-11-24 16:59:28 +01:00
compression.h
connection.h MINOR: connection: add sample fetch "fc_rcvd_proxy" 2017-01-06 11:59:17 +01:00
counters.h CLEANUP: counters: move from 3 types to 2 types 2016-11-25 15:03:12 +01:00
dns.h MINOR: dns: implement extra 'hold' timers. 2016-11-09 15:30:47 +01:00
fd.h DEBUG: connection: mark the closed FDs with a value that is easier to detect 2016-11-18 15:00:42 +01:00
filters.h MINOR: filters: Add check_timeouts callback to handle timers expiration on streams 2016-11-21 15:29:58 +01:00
freq_ctr.h
global.h CLEANUP: ssl: move most ssl-specific global settings to ssl_sock.c 2016-12-22 23:26:38 +01:00
hdr_idx.h
hlua.h BUG/MEDIUM: lua: In some case, the return of sample-fetches is ignored (2) 2016-12-14 12:52:47 +01:00
lb_chash.h MINOR: backend: add hash-balance-factor option for hash-type consistent 2016-10-25 20:21:32 +02:00
lb_fas.h
lb_fwlc.h
lb_fwrr.h
lb_map.h
listener.h BUG/MEDIUM: ssl: in bind line, ssl-options after 'crt' are ignored. 2017-03-07 10:42:43 +01:00
log.h CLEANUP: logs: remove unused log format field definitions 2016-08-23 15:25:28 +02:00
mailers.h MINOR: mailers: make it possible to configure the connection timeout 2016-02-20 15:33:06 +01:00
map.h CLEANUP: map: it seems that the map were planed to be chained 2016-03-30 15:41:15 +02:00
obj_type.h
pattern.h MINOR: map: Add regex matching replacement 2016-02-10 23:38:34 +01:00
peers.h MINOR: peers: remove the pointer to the stream 2016-10-31 20:07:01 +01:00
pipe.h
port_range.h
proto_http.h BUG/MEDIUM: filters: Fix channels synchronization in flt_end_analyze 2017-03-15 19:09:06 +01:00
proto_udp.h
protocol.h CLEANUP: fix inconsistency between fd->iocb, proto->accept and accept() 2016-04-14 11:18:22 +02:00
proxy.h MINOR: server: Add dynamic session cookies. 2017-03-15 11:37:30 +01:00
queue.h
sample.h BUG/MEDIUM: samples: make smp_dup() always duplicate the sample 2016-08-09 14:03:23 +02:00
server.h MINOR: server: Add dynamic session cookies. 2017-03-15 11:37:30 +01:00
session.h
signal.h
spoe.h MINOR: spoe: Add "send-frag-payload" option in spoe-agent section 2017-03-09 15:32:55 +01:00
ssl_sock.h MEDIUM: boringssl: support native multi-cert selection without bundling 2017-03-02 18:31:05 +01:00
stats.h MEDIUM: stats: Add show json schema 2017-03-14 11:14:03 +01:00
stick_table.h MEDIUM: http: implement http-response track-sc* directive 2016-07-26 14:31:14 +02:00
stream_interface.h
stream.h MEDIUM: lua: remove Lua struct from session, and allocate it with memory pools 2016-12-21 15:24:56 +01:00
task.h
template.h
vars.h MEDIUM: vars: Add a per-process scope for variables 2016-11-09 22:57:00 +01:00