haproxy/src
Aurelien DARRAGON 739281b3d6 BUG/MEDIUM: thread: consider secondary threads as idle+harmless during boot
idle and harmless bits in the tgroup_ctx structure were not explicitly
set during boot.

    | struct tgroup_ctx ha_tgroup_ctx[MAX_TGROUPS] = { };

As the structure is first statically initialized,
.threads_harmless and .threads_idle are automatically zero-
initialized by the compiler.

Unfortulately, this means that such threads are not considered idle
nor harmless by thread_isolate(_full)() functions until they enter
the polling loop (thread_harmless_now() and thread_idle_now() are
respectively called before entering the polling loop)

Because of this, any attempt to call thread_isolate() or thread_isolate_full()
during a startup phase with nbthreads >= 2 will cause thread_isolate to
loop until every secondary threads make it through their first polling loop.

If the startup phase is aborted during boot (ie: "-c" option to check the
configuration), secondary threads may be initialized but will never be started
(ie: they won't enter the polling loop), thus thread_isolate()
could would loop forever in such cases.

We can easily reveal the bug with this patch reproducer:

    |  diff --git a/src/haproxy.c b/src/haproxy.c
    |  index e91691658..0b733f6ee 100644
    |  --- a/src/haproxy.c
    |  +++ b/src/haproxy.c
    |  @@ -2317,6 +2317,10 @@ static void init(int argc, char **argv)
    |   		if (pr || px) {
    |   			/* At least one peer or one listener has been found */
    |   			qfprintf(stdout, "Configuration file is valid\n");
    |  +			printf("haproxy will loop...\n");
    |  +			thread_isolate();
    |  +			printf("we will never reach this\n");
    |  +			thread_release();
    |   			deinit_and_exit(0);
    |   		}
    |   		qfprintf(stdout, "Configuration file has no error but will not start (no listener) => exit(2).\n");

Now we start haproxy with a valid config:
$> haproxy -c -f valid.conf
Configuration file is valid
haproxy will loop...

^C

------------------------------------------------------------------------------

This did not cause any issue so far because no early deinit paths require
full thread isolation. But this may change when new features or requirements
are introduced, so we should fix this before it becomes a real issue.

To fix this, we explicitly assign .threads_harmless and .threads_idle
to .threads_enabled value in thread_map_to_groups() function during boot.
This is the proper place to do this since as long as .threads_enabled is not
explicitly set, its default value is also 0 (zero-initialized by the compiler)

code snippet from thread_isolate() function:
       ulong te = _HA_ATOMIC_LOAD(&ha_tgroup_info[tgrp].threads_enabled);
       ulong th = _HA_ATOMIC_LOAD(&ha_tgroup_ctx[tgrp].threads_harmless);

       if ((th & te) == te)
           break;

Thus thread_isolate(_full()) won't be looping forever in thread_isolate()
even if it were to be used before thread_map_to_groups() is executed.

No backport needed unless this is a requirement.
2023-02-02 08:21:15 +01:00
..
acl.c BUILD: acl: use __fallthrough in parse_acl_expr() 2022-11-14 11:14:02 +01:00
action.c BUG/MINOR: rules: Fix check_capture() function to use the right rule arguments 2022-04-25 15:28:21 +02:00
activity.c MINOR: channel/applets: Stop to test CF_WRITE_ERROR flag if CF_SHUTW is enough 2023-01-09 18:41:08 +01:00
applet.c MEDIUM: channel: Use CF_WRITE_EVENT instead of CF_WRITE_PARTIAL 2023-01-09 18:41:08 +01:00
arg.c CLEANUP: arg: remove extra check in make_arg_list arg escaping 2022-11-22 16:27:52 +01:00
auth.c MINOR: auth: silence null dereference warning in check_user() 2022-11-24 15:24:02 +01:00
backend.c MEDIUM: channel: Use CF_READ_EVENT instead of CF_READ_PARTIAL 2023-01-09 18:41:08 +01:00
base64.c BUG/MINOR: base64: base64urldec() ignores padding in output size check 2021-08-25 16:14:14 +02:00
cache.c REORG: channel: Rename CF_READ_NULL to CF_READ_EVENT 2023-01-09 18:41:08 +01:00
calltrace.c BUILD: calltrace: fix wrong include when building with TRACE=1 2022-04-19 08:23:30 +02:00
cbuf.c CLEANUP: pool/tree-wide: remove suffix "_pool" from certain pool names 2022-06-23 11:49:09 +02:00
cfgcond.c MINOR: ssl: Add ssllib_name_startswith precondition 2021-10-13 11:28:08 +02:00
cfgdiag.c CLEANUP: assorted typo fixes in the code and comments 2021-04-26 10:42:58 +02:00
cfgparse-global.c MINOR: quic: Add "no-quic" global option 2023-01-17 16:35:20 +01:00
cfgparse-listen.c MEDIUM: proxy/http_ext: implement dynamic http_ext 2023-01-27 15:18:59 +01:00
cfgparse-quic.c MINOR: quic: define config option for socket per conn 2022-12-02 14:45:43 +01:00
cfgparse-ssl.c MINOR: cfgparse-ssl: avoid a possible crash on OOM in ssl_bind_parse_npn() 2023-01-02 09:51:35 +01:00
cfgparse-tcp.c CLEANUP: tree-wide: remove 25 occurrences of unneeded fcntl.h 2022-04-26 10:59:48 +02:00
cfgparse-unix.c CLEANUP: tree-wide: remove 25 occurrences of unneeded fcntl.h 2022-04-26 10:59:48 +02:00
cfgparse.c MINOR: cfgparse/http_ext: move post-parsing http_ext steps to http_ext 2023-01-27 15:18:59 +01:00
channel.c MEDIUM: channel: Use CF_READ_EVENT instead of CF_READ_PARTIAL 2023-01-09 18:41:08 +01:00
check.c MINOR: check: use atomic for s->consecutive_errors 2022-12-07 17:04:08 +01:00
chunk.c MINOR: chunk: inline alloc_trash_chunk() 2022-08-17 10:45:22 +02:00
cli.c MINOR: channel/applets: Stop to test CF_WRITE_ERROR flag if CF_SHUTW is enough 2023-01-09 18:41:08 +01:00
clock.c BUG/MEDIUM: wdt/clock: properly handle early task hangs 2022-11-14 19:14:53 +01:00
compression.c CLEANUP: compression: move the default setting of maxzlibmem to defaults 2022-04-25 19:42:43 +02:00
connection.c MINOR: connection: add a BUG_ON() to detect destroying connection in idle list 2023-01-25 15:30:49 +01:00
cpuset.c MEDIUM: cpu-map: replace the process number with the thread group number 2022-07-15 19:43:10 +02:00
debug.c BUG/MEDIUM: debug/thread: make the debug handler not wait for !rdv_requests 2023-01-19 19:22:17 +01:00
dgram.c REORG: dgram: rename proto_udp to dgram 2020-06-11 10:18:59 +02:00
dict.c CLEANUP: atomic/tree-wide: replace single increments/decrements with inc/dec 2021-04-07 18:18:37 +02:00
dns.c MINOR: channel/applets: Stop to test CF_WRITE_ERROR flag if CF_SHUTW is enough 2023-01-09 18:41:08 +01:00
dynbuf.c REORG: thread/sched: move the last dynamic thread_info to thread_ctx 2021-10-08 17:22:26 +02:00
eb32sctree.c REORG: ebtree: move the include files from ebtree to include/import/ 2020-06-11 09:31:11 +02:00
eb32tree.c REORG: ebtree: move the include files from ebtree to include/import/ 2020-06-11 09:31:11 +02:00
eb64tree.c REORG: ebtree: move the include files from ebtree to include/import/ 2020-06-11 09:31:11 +02:00
ebimtree.c CLEANUP: include: tree-wide alphabetical sort of include files 2020-06-11 10:18:59 +02:00
ebistree.c REORG: ebtree: move the include files from ebtree to include/import/ 2020-06-11 09:31:11 +02:00
ebmbtree.c CLEANUP: assorted typo fixes in the code and comments 2021-08-16 12:37:59 +02:00
ebpttree.c REORG: ebtree: move the include files from ebtree to include/import/ 2020-06-11 09:31:11 +02:00
ebsttree.c REORG: ebtree: move the include files from ebtree to include/import/ 2020-06-11 09:31:11 +02:00
ebtree.c BUG/MEDIUM: ebtree: use a byte-per-byte memcmp() to compare memory blocks 2020-06-16 11:30:33 +02:00
errors.c CLEANUP: assorted typo fixes in the code and comments 2022-10-30 17:17:56 +01:00
ev_epoll.c MINOR: pollers: only update the local date during busy polling 2022-09-21 09:06:28 +02:00
ev_evports.c MINOR: pollers: only update the local date during busy polling 2022-09-21 09:06:28 +02:00
ev_kqueue.c MINOR: pollers: only update the local date during busy polling 2022-09-21 09:06:28 +02:00
ev_poll.c BUG/MINOR: signals/poller: ensure wakeup from signals 2022-09-09 11:15:22 +02:00
ev_select.c MEDIUM: fd/poller: turn update_mask to group-local IDs 2022-07-15 20:16:30 +02:00
event_hdl.c MINOR: server/event_hdl: add support for SERVER_UP and SERVER_DOWN events 2022-12-06 10:22:07 +01:00
extcheck.c MINOR: checks: use the lighter PRNG for spread checks 2022-10-12 21:49:30 +02:00
fcgi-app.c BUG/MINOR: fcgi-app: prevent 'use-fcgi-app' in default section 2023-01-27 15:18:59 +01:00
fcgi.c BUG/MAJOR: fcgi: Fix uninitialized reserved bytes 2022-12-09 12:23:14 +01:00
fd.c BUG/MINOR: thread: always reload threads_enabled in loops 2023-01-19 19:22:17 +01:00
filters.c CLEANUP: tree-wide: Remove any ref to stream-interfaces 2022-04-13 15:10:16 +02:00
fix.c CLEANUP: assorted typo fixes in the code and comments 2021-08-16 12:37:59 +02:00
flt_bwlim.c BUG/MINOR: bwlim: Fix parameters check for set-bandwidth-limit actions 2023-01-19 16:15:12 +01:00
flt_http_comp.c BUILD: compression: use __fallthrough in comp_http_payload() 2022-11-14 11:14:02 +01:00
flt_spoe.c REORG: channel: Rename CF_READ_NULL to CF_READ_EVENT 2023-01-09 18:41:08 +01:00
flt_trace.c CLEANUP: Apply ist.cocci 2021-11-08 12:08:26 +01:00
freq_ctr.c BUG/MEDIUM: freq-ctr: Don't compute overshoot value for empty counters 2022-12-14 10:44:17 +01:00
frontend.c REORG: rename cs_utils.h to sc_strm.h 2022-05-27 19:33:35 +02:00
h1.c BUG/MINOR: h1: Replace authority validation to conform RFC3986 2022-11-22 17:49:10 +01:00
h1_htx.c MINOR: htx: Add an HTX value for the extra field is payload length is unknown 2023-01-13 11:51:11 +01:00
h2.c MINOR: http: extract content-length parsing from H2 2022-12-14 11:34:18 +01:00
h3.c BUG/MINOR: h3: fix crash due to h3 traces 2023-01-31 16:09:47 +01:00
h3_stats.c MINOR: h3: Add a statistics module for h3 2022-05-30 09:59:26 +02:00
haproxy.c BUG/MEDIUM: thread: consider secondary threads as idle+harmless during boot 2023-02-02 08:21:15 +01:00
hash.c BUILD: hash: use __fallthrough in hash_djb2() 2022-11-14 11:14:02 +01:00
hlua.c MINOR: htx: Add an HTX value for the extra field is payload length is unknown 2023-01-13 11:51:11 +01:00
hlua_fcn.c MEDIUM: stick-table: switch the table lock to rwlock 2022-10-12 14:19:05 +02:00
hpack-dec.c BUILD: hpack: include global.h for the trash that is needed in debug mode 2023-01-20 00:02:37 +01:00
hpack-enc.c CLEANUP: include: tree-wide alphabetical sort of include files 2020-06-11 10:18:59 +02:00
hpack-huff.c BUG/MEDIUM: hpack: fix incorrect huffman decoding of some control chars 2023-01-26 11:36:39 +01:00
hpack-tbl.c BUILD/DEBUG: hpack-tbl: fix format string in standalone debug code 2022-04-12 08:30:08 +02:00
hq_interop.c MINOR: mux-quic: refactor snd_buf 2022-09-20 15:35:29 +02:00
http.c MINOR: http: extract content-length parsing from H2 2022-12-14 11:34:18 +01:00
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 BUG/MINOR: http: Memory leak of http redirect rules' format string 2023-01-06 16:42:24 +01:00
http_ana.c MEDIUM: proxy/http_ext: implement dynamic http_ext 2023-01-27 15:18:59 +01:00
http_client.c BUG/MINOR: httpclient/log: free of invalid ptr with httpclient_log_format 2022-12-22 15:39:31 +01:00
http_conv.c BUG/MEDIUM: http-conv: Fix url_enc() to not crush const samples 2022-04-08 10:12:59 +02:00
http_ext.c BUG/MINOR: http_ext/7239: ipv6 dumping relies on out of scope variables 2023-01-30 15:14:08 +01:00
http_fetch.c MINOR: htx: Add an HTX value for the extra field is payload length is unknown 2023-01-13 11:51:11 +01:00
http_htx.c MINOR: http_htx: add http_prepend_header() to prepend value to header 2023-01-27 15:18:59 +01:00
http_rules.c BUILD: http: remove the two unused constructors in rules and ana 2022-04-25 19:26:26 +02:00
htx.c BUG/MEDIUM: htx: Fix a possible null derefs in htx_xfer_blks() 2022-02-28 17:16:55 +01:00
init.c MINOR: init: add the pre-check callback 2022-04-22 15:45:47 +02:00
jwt.c BUG/MINOR: jwt: Wrong return value checked 2023-01-20 10:27:37 +01:00
lb_chash.c MINOR: server: replace the pendconns-related stuff with a struct queue 2021-06-22 18:43:14 +02:00
lb_fas.c MINOR: server: replace the pendconns-related stuff with a struct queue 2021-06-22 18:43:14 +02:00
lb_fwlc.c BUG/MEDIUM: leastconn: fix rare possibility of divide by zero 2021-09-22 07:24:02 +02:00
lb_fwrr.c CLEANUP: assorted typo fixes in the code and comments 2021-08-16 12:37:59 +02:00
lb_map.c MINOR: server: replace the pendconns-related stuff with a struct queue 2021-06-22 18:43:14 +02:00
listener.c BUG/MINOR: thread: always reload threads_enabled in loops 2023-01-19 19:22:17 +01:00
log.c REORG: channel: Rename CF_READ_NULL to CF_READ_EVENT 2023-01-09 18:41:08 +01:00
lru.c BUILD/DEBUG: lru: fix printf format in debug code 2022-04-12 08:19:33 +02:00
mailers.c BUG/MEDIUM: mailers: Set the object type for check attached to an email alert 2022-06-08 15:28:38 +02:00
map.c MINOR: channel/applets: Stop to test CF_WRITE_ERROR flag if CF_SHUTW is enough 2023-01-09 18:41:08 +01:00
mjson.c MINOR: sample: converter: Add mjson library. 2021-04-15 17:05:38 +02:00
mqtt.c MEDIUM: mqtt: support mqtt_is_valid and mqtt_field_value converters for MQTTv3.1 2022-03-22 09:25:52 +01:00
mux_fcgi.c BUG/MINOR: mux-fcgi: Correctly set pathinfo 2023-01-18 07:53:05 +01:00
mux_h1.c BUG/MINOR:: mux-h1: Never handle error at mux level for running connection 2022-12-19 11:01:26 +01:00
mux_h2.c BUG/MINOR: mux-h2: Fix possible null pointer deref on h2c in _h2_trace_header() 2023-01-30 08:26:12 +01:00
mux_pt.c MEDIUM: mux-pt: Don't always set a final error on SE on the sending path 2022-11-17 14:33:15 +01:00
mux_quic.c BUG/MINOR: h3: reject RESET_STREAM received for control stream 2023-01-30 16:16:46 +01:00
mworker-prog.c BUILD: mworker: include tools.h for platforms without unsetenv() 2022-01-28 19:04:02 +01:00
mworker.c MINOR: channel/applets: Stop to test CF_WRITE_ERROR flag if CF_SHUTW is enough 2023-01-09 18:41:08 +01:00
namespace.c REORG: include: move the error reporting functions to from log.h to errors.h 2020-06-11 10:18:59 +02:00
ncbuf.c CLEANUP: ncbuf: use standard BUG_ON with DEBUG_STRICT 2022-11-29 15:15:27 +01:00
pattern.c BUG/MEDIUM: pattern: only visit equivalent nodes when skipping versions 2022-08-01 11:59:46 +02:00
payload.c CLEANUP: check: rename all occurrences of stconn "cs" to "sc" 2022-05-27 19:33:35 +02:00
peers.c BUG/MEDIUM: peers: make "show peers" more careful about partial initialization 2023-01-12 17:09:34 +01:00
pipe.c CLEANUP: atomic/tree-wide: replace single increments/decrements with inc/dec 2021-04-07 18:18:37 +02:00
pool.c BUG/MINOR: pool/stats: Use ullong to report total pool usage in bytes in stats 2022-12-22 13:46:21 +01:00
proto_quic.c BUG/MINOR: quic: do not allocate more rxbufs than necessary 2022-12-21 09:27:26 +01:00
proto_sockpair.c MINOR: sockpair: move send_fd_uxst() error message in caller 2022-07-25 16:11:11 +02:00
proto_tcp.c BUG/MINOR: listeners: fix suspend/resume of inherited FDs 2023-01-16 14:00:50 +01:00
proto_udp.c BUG/MINOR: listeners: fix suspend/resume of inherited FDs 2023-01-16 14:00:50 +01:00
proto_uxdg.c MINOR: protocol: replace ctrl_type with xprt_type and clarify it 2022-05-20 18:39:43 +02:00
proto_uxst.c MINOR: protocol: replace ctrl_type with xprt_type and clarify it 2022-05-20 18:39:43 +02:00
protocol.c MINOR: quic: Add "no-quic" global option 2023-01-17 16:35:20 +01:00
proxy.c MEDIUM: proxy/http_ext: implement dynamic http_ext 2023-01-27 15:18:59 +01:00
qmux_http.c BUG/MEDIUM: mux-quic: properly trim HTX buffer on snd_buf reset 2022-09-20 15:35:33 +02:00
qmux_trace.c BUILD: quic: Fix build for m68k cross-compilation 2022-10-18 12:04:10 +02:00
qpack-dec.c MINOR: qpack: report error on enc/dec stream close 2022-08-17 11:04:53 +02:00
qpack-enc.c BUG/MINOR: qpack: support bigger prefix-integer encoding 2022-05-30 14:30:05 +02:00
qpack-tbl.c CLEANUP: qpack: properly use the QPACK macros not HPACK ones in debug code 2022-11-24 15:38:26 +01:00
queue.c BUG/MEDIUM: queue/threads: limit the number of entries dequeued at once 2022-07-30 10:00:59 +02:00
quic_cc.c CLEANUP: quic: fix headers 2022-10-03 16:25:17 +02:00
quic_cc_cubic.c BUG/MEDIUM: quic: Floating point exception in cubic_root() 2022-08-03 14:27:20 +02:00
quic_cc_newreno.c CLEANUP: quic: create a dedicated quic_conn module 2022-10-03 16:25:17 +02:00
quic_conn.c BUG/MINOR: quic: Do not request h3 clients to close its unidirection streams 2023-01-20 15:49:52 +01:00
quic_frame.c CLEANUP: quic: create a dedicated quic_conn module 2022-10-03 16:25:17 +02:00
quic_loss.c MINOR: quic: Split the secrets key allocation in two parts 2022-10-13 10:12:03 +02:00
quic_sock.c MEDIUM: quic-sock: fix udp source address for send on listener socket 2023-01-20 17:06:04 +01:00
quic_stats.c MINOR: quic: detect connection migration 2022-12-02 14:45:43 +01:00
quic_stream.c MINOR: quic: New quic_cstream object implementation 2022-10-13 10:12:03 +02:00
quic_tls.c MINOR: quic: Replace v2 draft definitions by those of the final 2 version 2023-01-17 16:35:20 +01:00
quic_tp.c MINOR: quic: Disable the active connection migrations 2023-01-17 16:35:20 +01:00
raw_sock.c OPTIM: global: move byte counts out of global and per-thread 2023-01-12 16:37:45 +01:00
regex.c BUG/MINOR: regex: Properly handle PCRE2 lib compiled without JIT support 2022-09-01 19:34:46 +02:00
resolvers.c BUG/MINOR: resolvers: Wait the resolution execution for a do_resolv action 2023-01-11 10:31:42 +01:00
ring.c MINOR: channel/applets: Stop to test CF_WRITE_ERROR flag if CF_SHUTW is enough 2023-01-09 18:41:08 +01:00
sample.c MINOR: sample: add ARGC_OPT 2023-01-27 15:18:59 +01:00
server.c BUG/MINOR: checks: restore legacy on-error fastinter behavior 2022-12-07 17:03:55 +01:00
server_state.c BUILD: server-state: avoid using not-so-portable isblank() 2022-01-28 19:04:02 +01:00
session.c MEDIUM: stick-table: set the track-sc limit at boottime via tune.stick-counters 2023-01-06 18:08:49 +01:00
sha1.c BUILD: use inttypes.h instead of stdint.h 2019-04-01 07:44:56 +02:00
shctx.c MINOR: shctx: add a few BUG_ON() for consistency checks 2021-11-19 19:25:13 +01:00
signal.c BUG/MINOR: signals/poller: ensure wakeup from signals 2022-09-09 11:15:22 +02:00
sink.c BUG/MINOR: sink: free the forwarding task on exit 2023-01-26 15:49:32 +01:00
slz.c IMPORT: slz: declare len to fix debug build when optimal match is enabled 2022-11-14 11:14:02 +01:00
sock.c MINOR: sockpair: move send_fd_uxst() error message in caller 2022-07-25 16:11:11 +02:00
sock_inet.c BUG/MEDIUM: listener: duplicate inherited FDs if needed 2023-01-11 11:27:20 +01:00
sock_unix.c BUG/MEDIUM: listener: duplicate inherited FDs if needed 2023-01-11 11:27:20 +01:00
ssl_ckch.c MINOR: channel/applets: Stop to test CF_WRITE_ERROR flag if CF_SHUTW is enough 2023-01-09 18:41:08 +01:00
ssl_crtlist.c MINOR: ssl: Treat ocsp-update inconsistencies as fatal errors 2023-01-12 13:13:45 +01:00
ssl_ocsp.c MINOR: ssl: Remove debug fprintf in 'update ssl ocsp-response' cli command 2023-01-25 11:51:39 +01:00
ssl_sample.c BUG/MINOR: ssl: don't initialize the keylog callback when not required 2022-11-18 15:24:23 +01:00
ssl_sock.c BUG/MEDIUM: ssl: wrong eviction from the session cache tree 2023-01-31 14:34:40 +01:00
ssl_utils.c MINOR: ssl: Move OCSP code to a dedicated source file 2022-12-21 11:21:07 +01:00
stats.c OPTIM: global: move byte counts out of global and per-thread 2023-01-12 16:37:45 +01:00
stconn.c MINOR: channel/applets: Stop to test CF_WRITE_ERROR flag if CF_SHUTW is enough 2023-01-09 18:41:08 +01:00
stick_table.c MINOR: channel/applets: Stop to test CF_WRITE_ERROR flag if CF_SHUTW is enough 2023-01-09 18:41:08 +01:00
stream.c MINOR: channel/applets: Stop to test CF_WRITE_ERROR flag if CF_SHUTW is enough 2023-01-09 18:41:08 +01:00
task.c BUILD: sched: fix build with DEBUG_THREAD with the previous commit 2022-11-22 10:24:07 +01:00
tcp_act.c MEDIUM: tcp-act: add parameter rst-ttl to silent-drop 2022-11-19 04:53:47 +01:00
tcp_rules.c MINOR: channel: Stop to test CF_READ_ERROR flag if CF_SHUTR is enough 2023-01-09 18:41:08 +01:00
tcp_sample.c MINOR: Revert part of clarifying samples support per os commit 2022-09-03 06:11:08 +02:00
tcpcheck.c BUILD: tcpcheck: use __fallthrough in check_proxy_tcpcheck() 2022-11-14 11:14:02 +01:00
thread.c BUG/MEDIUM: thread: consider secondary threads as idle+harmless during boot 2023-02-02 08:21:15 +01:00
time.c REORG: time: move time-keeping code and variables to clock.c 2021-10-08 17:22:26 +02:00
tools.c MINOR: listener: also support "quic+" as an address prefix 2023-01-16 14:00:51 +01:00
trace.c MINOR: trace: add a trace_no_cb() dummy callback for when to use no callback 2023-01-26 15:49:43 +01:00
uri_auth.c CLEANUP: Compare the return value of XXXcmp() functions with zero 2021-01-04 10:09:02 +01:00
uri_normalizer.c MINOR: uri_normalizer: Add fragment-encode normalizer 2021-05-11 17:24:32 +02:00
vars.c BUILD: vars: use __fallthrough in var_accounting_{diff,add}() 2022-11-14 11:14:02 +01:00
version.c BUILD: Fix build by including haproxy/global.h 2020-06-16 23:36:04 +02:00
wdt.c MINOR: wdt: do not rely on threads_to_dump anymore 2022-07-01 19:26:35 +02:00
xprt_handshake.c CLEANUP: pool/tree-wide: remove suffix "_pool" from certain pool names 2022-06-23 11:49:09 +02:00
xprt_quic.c BUG/MINOR: quic: fix subscribe operation 2022-10-26 18:18:26 +02:00