haproxy/src
Christopher Faulet 341064eb16 BUG/MINOR: stream: Don't update counters when TCP to H2 upgrades are performed
When a TCP to H2 upgrade is performed, the SF_IGNORE flag is set on the
stream before killing it. This happens when a TCP/SSL client connection is
routed to a HTTP backend and the h2 alpn detected. The SF_IGNORE flag was
added for this purpose, to skip some processing when the stream is aborted
before a mux upgrade. Some counters updates were skipped this way. But some
others are still updated.

Now, all counters update at the end of process_stream(), before releasing
the stream, are ignored if SF_IGNORE flag is set. Note this stream is
aborted because we switch from a mono-stream to a multi-stream
multiplexer. It works differently for TCP to H1 upgrades.

This patch should be backported as far as 2.0 after some observation period.
2021-01-22 09:06:34 +01:00
..
51d.c MEDIUM: xxhash: use the XXH3 functions to generate 64-bit hashes 2020-12-23 06:39:21 +01:00
acl.c CLEANUP: Compare the return value of XXXcmp() functions with zero 2021-01-04 10:09:02 +01:00
action.c CLEANUP: Compare the return value of XXXcmp() functions with zero 2021-01-04 10:09:02 +01:00
activity.c
applet.c
arg.c
auth.c CLEANUP: assorted typo fixes in the code and comments 2021-01-06 17:32:03 +01:00
backend.c CLEANUP: Fix spelling errors in comments 2021-01-08 14:56:32 +01:00
base64.c
cache.c CLEANUP: Rename accept_encoding_hash_cmp to accept_encoding_bitmap_cmp 2021-01-18 15:01:48 +01:00
calltrace.c
cfgparse-global.c CLEANUP: Compare the return value of XXXcmp() functions with zero 2021-01-04 10:09:02 +01:00
cfgparse-listen.c BUG/MINOR: cfgparse: Fail if the strdup() for rule->be.name for use_backend fails 2021-01-05 11:37:41 +01:00
cfgparse-ssl.c CLEANUP: Compare the return value of XXXcmp() functions with zero 2021-01-04 10:09:02 +01:00
cfgparse-tcp.c CLEANUP: cfgparse: remove duplicate registration for transparent build options 2020-11-05 19:27:16 +01:00
cfgparse-unix.c
cfgparse.c CLEANUP: cfgparse: replace "realloc" with "my_realloc2" to fix to memory leak on error 2021-01-08 14:45:39 +01:00
channel.c
check.c BUG/MEDIUM: tcpcheck: Don't destroy connection in the wake callback context 2021-01-21 15:21:12 +01:00
chunk.c
cli.c MINOR: cli/show_fd: report some easily detectable suspicious states 2021-01-21 09:09:05 +01:00
compression.c CLEANUP: Compare the return value of XXXcmp() functions with zero 2021-01-04 10:09:02 +01:00
connection.c MEDIUM: connection: make use of the control layer check_events/ignore_events 2020-12-11 17:06:11 +01:00
da.c CLEANUP: config: Return ERR_NONE from config callbacks instead of 0 2020-11-13 16:26:10 +01:00
debug.c CLEANUP: debug: mark the RNG's seed as unsigned 2020-12-18 16:31:08 +01:00
dgram.c
dict.c MEDIUM: stick-tables: Add srvkey option to stick-table 2020-12-31 10:04:54 +01:00
dns.c BUG/MINOR: dns: SRV records ignores duplicated AR records (v2) 2021-01-15 17:01:24 +01:00
dynbuf.c
eb32sctree.c
eb32tree.c
eb64tree.c
ebimtree.c
ebistree.c
ebmbtree.c
ebpttree.c
ebsttree.c
ebtree.c
ev_epoll.c
ev_evports.c
ev_kqueue.c
ev_poll.c CLEANUP: few extra typo and fixes over last one ("ot" -> "to") 2021-01-06 17:35:52 +01:00
ev_select.c CLEANUP: few extra typo and fixes over last one ("ot" -> "to") 2021-01-06 17:35:52 +01:00
extcheck.c BUG/MINOR: extcheck: add missing checks on extchk_setenv() 2020-10-24 13:07:39 +02:00
fcgi-app.c CLEANUP: Compare the return value of XXXcmp() functions with zero 2021-01-04 10:09:02 +01:00
fcgi.c
fd.c CLEANUP: Fix spelling errors in comments 2021-01-08 14:56:32 +01:00
filters.c CLEANUP: Compare the return value of XXXcmp() functions with zero 2021-01-04 10:09:02 +01:00
fix.c CLEANUP: assorted typo fixes in the code and comments 2020-12-21 11:24:48 +01:00
flt_http_comp.c CLEANUP: Compare the return value of XXXcmp() functions with zero 2021-01-04 10:09:02 +01:00
flt_spoe.c CLEANUP: spoe: fix typo on var_check_arg comment 2021-01-05 17:23:32 +01:00
flt_trace.c CLEANUP: Compare the return value of XXXcmp() functions with zero 2021-01-04 10:09:02 +01:00
freq_ctr.c
frontend.c MINOR: frontend: add client timeout sample fetch 2020-12-11 12:01:07 +01:00
h1_htx.c BUG/MINOR: http: Establish a tunnel for all 2xx responses to a CONNECT 2020-12-18 15:05:57 +01:00
h1.c
h2.c
haproxy.c BUG/MINOR: init: Use a dynamic buffer to set HAPROXY_CFGFILES env variable 2021-01-13 17:45:25 +01:00
hash.c
hlua_fcn.c MEDIUM: stats: allow to select one field in stats_fill_fe_stats 2021-01-21 18:59:30 +01:00
hlua.c CLEANUP: Fix spelling errors in comments 2021-01-08 14:56:32 +01:00
hpack-dec.c
hpack-enc.c
hpack-huff.c
hpack-tbl.c
http_acl.c CLEANUP: acl: don't reference the generic pattern deletion function anymore 2020-11-05 19:27:09 +01:00
http_act.c CLEANUP: Fix spelling errors in comments 2021-01-08 14:56:32 +01:00
http_ana.c BUG/MEDIUM: http-ana: Never for sending data in TUNNEL mode 2020-12-18 15:05:57 +01:00
http_conv.c MINOR: converter: adding support for url_enc 2021-01-06 23:43:04 +01:00
http_fetch.c BUG/MINOR: http-fetch: Fix smp_fetch_body() when called from a health-check 2020-11-27 10:30:23 +01:00
http_htx.c CLEANUP: Compare the return value of XXXcmp() functions with zero 2021-01-04 10:09:02 +01:00
http_rules.c CLEANUP: Compare the return value of XXXcmp() functions with zero 2021-01-04 10:09:02 +01:00
http.c MINOR: http: Add HTTP 501-not-implemented error message 2021-01-21 15:21:12 +01:00
htx.c CLEANUP: Fix spelling errors in comments 2021-01-08 14:56:32 +01:00
lb_chash.c
lb_fas.c
lb_fwlc.c BUG/MEDIUM: lb-leastconn: Reposition a server using the right eweight 2020-12-14 09:52:34 +01:00
lb_fwrr.c
lb_map.c
listener.c MINOR: listener: now use a generic add_listener() function 2020-12-04 15:08:00 +01:00
log.c MINOR: muxes: Add exit status for errors about not implemented features 2021-01-21 15:21:12 +01:00
lru.c
mailers.c
map.c MEDIUM: pattern: only match patterns that match the current generation 2020-11-05 19:27:09 +01:00
mqtt.c CLEANUP: assorted typo fixes in the code and comments 2020-12-21 11:24:48 +01:00
mux_fcgi.c MINOR: cli: give the show_fd helpers the ability to report a suspicious entry 2021-01-21 08:58:15 +01:00
mux_h1.c MEDIUM: mux-h1: Return a 501-not-implemented for upgrade requests with a body 2021-01-21 15:21:12 +01:00
mux_h2.c BUG/MEDIUM: mux-h2: Xfer rxbuf to the upper layer when creating a front stream 2021-01-21 15:21:12 +01:00
mux_pt.c MINOR: xprt/mux: export all *_io_cb functions so that "show fd" resolves them 2021-01-20 17:17:39 +01:00
mworker-prog.c CLEANUP: mworker: remove duplicate pointer tests in cfg_parse_program() 2021-01-05 15:58:37 +01:00
mworker.c BUG/MINOR: mworker: define _GNU_SOURCE for strsignal() 2021-01-21 12:16:52 +01:00
namespace.c
pattern.c CLEANUP: pattern: rename pat_ref_commit() to pat_ref_commit_elt() 2021-01-15 14:11:59 +01:00
payload.c MINOR: config: Deprecate and ignore tune.chksize global option 2020-11-27 10:30:23 +01:00
peers.c BUG/MINOR: peers: Wrong "new_conn" value for "show peers" CLI command. 2021-01-19 10:08:18 +01:00
pipe.c
pool.c MEDIUM: pools: call malloc_trim() from pool_gc() 2020-11-05 19:27:08 +01:00
proto_quic.c CLEANUP: assorted typo fixes in the code and comments 2021-01-06 17:32:03 +01:00
proto_sockpair.c MINOR: protocol: add a pair of check_events/ignore_events functions at the ctrl layer 2020-12-11 17:02:50 +01:00
proto_tcp.c MINOR: protocol: add a pair of check_events/ignore_events functions at the ctrl layer 2020-12-11 17:02:50 +01:00
proto_udp.c MINOR: udp: export udp_suspend_receiver() and udp_resume_receiver() 2020-12-08 18:10:18 +01:00
proto_uxst.c MINOR: protocol: add a pair of check_events/ignore_events functions at the ctrl layer 2020-12-11 17:02:50 +01:00
protocol.c MINOR: protocol: remove the redundant ->sock_domain field 2020-12-08 12:13:54 +01:00
proxy.c CLEANUP: Fix spelling errors in comments 2021-01-08 14:56:32 +01:00
qpack-tbl.c CLEANUP: qpack: Wrong comment about the draft for QPACK static header table. 2021-01-04 12:31:28 +01:00
queue.c BUG/MEDIUM: queue: fix unsafe proxy pointer when counting nbpend 2020-10-24 12:57:41 +02:00
quic_cc_newreno.c MINOR: quic: Add traces to congestion avoidance NewReno callback. 2020-12-23 11:57:26 +01:00
quic_cc.c MINOR: quic: Import C source code files for QUIC protocol. 2020-12-23 11:57:26 +01:00
quic_frame.c CLEANUP: assorted typo fixes in the code and comments 2021-01-06 16:26:50 +01:00
quic_sock.c MINOR: quic: QUIC socket management finalization. 2020-12-23 11:57:26 +01:00
quic_tls.c MINOR: quic: Update the initial salt to that of draft-29. 2020-12-23 11:57:26 +01:00
raw_sock.c
regex.c
ring.c
sample.c BUG/MINOR: sample: Memory leak of sample_expr structure in case of error 2021-01-12 17:00:59 +01:00
server.c MINOR: server: Forbid server definitions in frontend sections 2021-01-13 17:45:34 +01:00
session.c MINOR: session: Add the idle duration field into the session 2020-12-04 14:41:48 +01:00
sha1.c
shctx.c
signal.c
sink.c BUG/MINOR: sink: Return an allocation failure in __sink_new if strdup() fails 2021-01-03 20:35:45 +01:00
sock_inet.c MINOR: protocol: add a ->set_port() helper to address families 2020-12-04 15:08:00 +01:00
sock_unix.c
sock.c MINOR: protocol: add a pair of check_events/ignore_events functions at the ctrl layer 2020-12-11 17:02:50 +01:00
ssl_ckch.c CLEANUP: Compare the return value of XXXcmp() functions with zero 2021-01-04 10:09:02 +01:00
ssl_crtlist.c CLEANUP: Compare the return value of XXXcmp() functions with zero 2021-01-04 10:09:02 +01:00
ssl_sample.c BUILD: ssl: use HAVE_OPENSSL_KEYLOG instead of OpenSSL versions 2020-11-03 14:54:15 +01:00
ssl_sock.c MINOR: ssl/show_fd: report some FDs as suspicious when possible 2021-01-21 09:09:05 +01:00
ssl_utils.c
stats.c MINOR: contrib/prometheus-exporter: use fill_fe_stats for frontend dump 2021-01-21 18:59:30 +01:00
stick_table.c CLEANUP: Compare the return value of XXXcmp() functions with zero 2021-01-04 10:09:02 +01:00
stream_interface.c CLEANUP: Fix spelling errors in comments 2021-01-08 14:56:32 +01:00
stream.c BUG/MINOR: stream: Don't update counters when TCP to H2 upgrades are performed 2021-01-22 09:06:34 +01:00
task.c BUG/MEDIUM: task: close a possible data race condition on a tasklet's list link 2020-11-30 18:17:59 +01:00
tcp_act.c CLEANUP: Compare the return value of XXXcmp() functions with zero 2021-01-04 10:09:02 +01:00
tcp_rules.c CLEANUP: Compare the return value of XXXcmp() functions with zero 2021-01-04 10:09:02 +01:00
tcp_sample.c
tcpcheck.c BUG/MEDIUM: tcpcheck: Don't destroy connection in the wake callback context 2021-01-21 15:21:12 +01:00
thread.c BUG/MINOR: threads: Fixes the number of possible cpus report for Mac. 2021-01-15 11:58:46 +01:00
time.c
tools.c CLEANUP: tools: make resolve_sym_name() take a const pointer 2021-01-20 17:17:39 +01:00
trace.c BUG/MINOR: trace: Wrong displayed trace level 2020-12-02 17:44:40 +01:00
uri_auth.c CLEANUP: Compare the return value of XXXcmp() functions with zero 2021-01-04 10:09:02 +01:00
vars.c MINOR: vars: replace static functions with global ones 2020-12-16 14:20:08 +01:00
version.c
wdt.c CLEANUP: config: Return ERR_NONE from config callbacks instead of 0 2020-11-13 16:26:10 +01:00
wurfl.c CLEANUP: config: Return ERR_NONE from config callbacks instead of 0 2020-11-13 16:26:10 +01:00
xprt_handshake.c MINOR: xprt/mux: export all *_io_cb functions so that "show fd" resolves them 2021-01-20 17:17:39 +01:00
xprt_quic.c MINOR: xprt/mux: export all *_io_cb functions so that "show fd" resolves them 2021-01-20 17:17:39 +01:00