haproxy/src
Valentine Krasnobaeva 5909d508bc MEDIUM: mworker: add support of master recovery mode
In this commit we add run_master_in_recovery_mode(), which groups all necessary
initialization steps, which master should perform to be able to enter in its
polling loop (run_master()), when it fails while parsing its new config.

As exit_on_failure() is now adapted for master recovery mode. Let's register
it as atexit handler, when master enters in this mode. And let's remove
atexit_flag variable for master, because we no longer use it.

We also slightly refactor here read_cfg_in_discovery_mode() in order to call
run_master_in_recovery_mode() for the case, described above. Warning messages
are mandatory before calling the run_master_in_recovery_mode() as this allows
to stop haproxy with error, if it was launched in zero-warning mode.

So, in recovery mode master does not launch any worker. It just performs its
necessary initialization routines and enters in its polling loop to continue
to monitor the existed worker process.
2024-10-16 22:02:39 +02:00
..
acl.c BUG/MINOR: acl: support built-in ACLs with acl() sample 2024-05-06 18:42:54 +02:00
action.c MINOR: support for http-request set-timeout client 2023-09-28 08:49:22 +02:00
activity.c MINOR: activity/memprofile: always return "other" bin on NULL return address 2024-10-15 08:12:34 +02:00
applet.c MINOR: stconn: Use a dedicated function to get the opposite sedesc 2024-07-12 15:27:04 +02:00
arg.c
auth.c
backend.c BUG/MEDIUM: queue: make sure never to queue when there's no more served conns 2024-10-16 18:08:39 +02:00
base64.c
buf.c MINOR: buffer: add a buffer list type with functions 2024-10-12 16:29:15 +02:00
cache.c BUILD: cache: silence an uninitialized warning at -Og with gcc-12.2 2024-10-12 16:28:54 +02:00
calltrace.c
cbuf.c
cebtree-prv.h IMPORT: import cebtree (compact elastic binary trees) 2024-09-15 23:44:59 +02:00
cebu32_tree.c IMPORT: import cebtree (compact elastic binary trees) 2024-09-15 23:44:59 +02:00
cebu64_tree.c IMPORT: import cebtree (compact elastic binary trees) 2024-09-15 23:44:59 +02:00
cebua_tree.c IMPORT: import cebtree (compact elastic binary trees) 2024-09-15 23:44:59 +02:00
cebub_tree.c IMPORT: import cebtree (compact elastic binary trees) 2024-09-15 23:44:59 +02:00
cebuib_tree.c IMPORT: import cebtree (compact elastic binary trees) 2024-09-15 23:44:59 +02:00
cebuis_tree.c IMPORT: import cebtree (compact elastic binary trees) 2024-09-15 23:44:59 +02:00
cebul_tree.c IMPORT: import cebtree (compact elastic binary trees) 2024-09-15 23:44:59 +02:00
cebus_tree.c IMPORT: import cebtree (compact elastic binary trees) 2024-09-15 23:44:59 +02:00
cfgcond.c
cfgdiag.c
cfgparse-global.c MEDIUM: cfgparse-global: parse only KWF_DISCOVERY keywords in MODE_DISCOVERY 2024-10-16 22:02:39 +02:00
cfgparse-listen.c MEDIUM: cfgparse: drop duplicate named defaults sections after use 2024-09-20 16:35:32 +02:00
cfgparse-quic.c BUILD: quic: fix build errors on FreeBSD since recent GSO changes 2024-08-30 18:53:49 +02:00
cfgparse-ssl.c MINOR: ssl: relax the 'ssl.default-dh-param' keyword parsing 2024-06-14 11:36:52 +02:00
cfgparse-tcp.c MINOR: capabilities: add cap_sys_admin support 2024-04-30 21:40:17 +02:00
cfgparse-unix.c
cfgparse.c MEDIUM: cfgparse: parse only "global" section in MODE_DISCOVERY 2024-10-16 22:02:39 +02:00
channel.c OPTIM: channel: speed up co_getline()'s search of the end of line 2024-09-30 11:36:39 +02:00
check.c MINOR: tools: extend str2sa_range to add an alt parameter 2024-08-30 18:53:49 +02:00
chunk.c MEDIUM: init: initialize the trash earlier 2023-09-08 16:25:19 +02:00
cli.c MEDIUM: startup: split sending oldpids_sig logic for standalone and mworker modes 2024-10-16 22:02:39 +02:00
clock.c MEDIUM: clock: don't compute before_poll when using monotonic clock 2024-09-17 09:08:10 +02:00
compression.c MINOR: dynbuf: pass a criticality argument to b_alloc() 2024-05-10 17:18:13 +02:00
connection.c MEDIUM: proxy/spoe: Add a SPOP mode 2024-07-12 15:27:04 +02:00
cpuset.c CLEANUP: Reapply xalloc_cast.cocci 2024-04-02 07:27:33 +02:00
debug.c CLEANUP: assorted typo fixes in the code and comments 2024-09-03 17:49:21 +02:00
dgram.c MINOR: dgram: allow to set rcv/sndbuf for dgram sockets as well 2023-10-18 17:01:19 +02:00
dict.c
dns_ring.c MAJOR: import: update mt_list to support exponential back-off (try #2) 2024-07-09 16:46:38 +02:00
dns.c MEDIUM: socket: always properly use the sock_domain for requested families 2024-08-21 17:36:58 +02:00
dynbuf.c MINOR: quic: define sbuf pool 2024-08-20 18:12:27 +02:00
eb32sctree.c
eb32tree.c
eb64tree.c
ebimtree.c
ebistree.c
ebmbtree.c
ebpttree.c
ebsttree.c
ebtree.c
errors.c MEDIUM: startup: remove MODE_MWORKER_WAIT 2024-10-16 22:02:39 +02:00
ev_epoll.c BUG/MINOR: polling: fix time reporting when using busy polling 2024-09-12 17:47:13 +02:00
ev_evports.c BUG/MINOR: polling: fix time reporting when using busy polling 2024-09-12 17:47:13 +02:00
ev_kqueue.c BUG/MINOR: polling: fix time reporting when using busy polling 2024-09-12 17:47:13 +02:00
ev_poll.c DEBUG: pollers/fd: add thread id suffix to per-thread memory areas name hints 2024-05-24 12:07:18 +02:00
ev_select.c DEBUG: pollers/fd: add thread id suffix to per-thread memory areas name hints 2024-05-24 12:07:18 +02:00
event_hdl.c MAJOR: import: update mt_list to support exponential back-off (try #2) 2024-07-09 16:46:38 +02:00
extcheck.c MEDIUM: proxy/spoe: Add a SPOP mode 2024-07-12 15:27:04 +02:00
fcgi-app.c BUG/MINOR: fcgi-app: handle a possible strdup() failure 2024-08-06 08:21:49 +02:00
fcgi.c
fd.c MINOR: fd: don't scan the full fdtab on all threads 2024-07-15 19:19:13 +02:00
filters.c Revert "MINOR: filter: "filter" requires TCP or HTTP mode" 2023-11-18 11:16:21 +01:00
fix.c
flt_bwlim.c MEDIUM: bwlim: Use a read-lock on the sticky session to apply a shared limit 2024-09-02 15:50:25 +02:00
flt_http_comp.c MINOR: dynbuf: pass a criticality argument to b_alloc() 2024-05-10 17:18:13 +02:00
flt_spoe.c CLEANUP: assorted typo fixes in the code and comments 2024-09-03 17:49:21 +02:00
flt_trace.c
freq_ctr.c BUG/MEDIUM: freq-ctr: Don't report overshoot for long inactivity period 2023-11-08 16:38:06 +01:00
frontend.c MEDIUM: log: consider log-steps proxy setting for existing log origins 2024-09-26 16:53:07 +02:00
guid.c MINOR: guid: define guid_is_valid_fmt() 2024-04-26 11:29:25 +02:00
h1_htx.c MINOR: proxy: Rename accept-invalid-http-* options 2024-09-16 22:55:25 +02:00
h1.c MINOR: proxy: Rename accept-invalid-http-* options 2024-09-16 22:55:25 +02:00
h2.c MINOR: proxy: Rename accept-invalid-http-* options 2024-09-16 22:55:25 +02:00
h3_stats.c MINOR: h3/qpack: adjust naming for errors 2024-05-16 10:31:17 +02:00
h3.c MINOR: proxy: Rename accept-invalid-http-* options 2024-09-16 22:55:25 +02:00
haproxy.c MEDIUM: mworker: add support of master recovery mode 2024-10-16 22:02:39 +02:00
hash.c
hlua_fcn.c MAJOR: import: update mt_list to support exponential back-off (try #2) 2024-07-09 16:46:38 +02:00
hlua.c BUG/MEDIUM: hlua: properly handle sample func errors in hlua_run_sample_{fetch,conv}() 2024-10-08 12:00:42 +02:00
hpack-dec.c
hpack-enc.c
hpack-huff.c
hpack-tbl.c
hq_interop.c MINOR: quic: support sbuf allocation in quic_stream 2024-08-20 18:12:27 +02:00
http_acl.c
http_act.c MINOR: action: add do-log action 2024-10-04 21:38:14 +02:00
http_ana.c BUG/MINOR: http-ana: Disable fast-fwd for unfinished req waiting for upgrade 2024-10-02 10:31:40 +02:00
http_client.c MEDIUM: startup: remove MODE_MWORKER_WAIT 2024-10-16 22:02:39 +02:00
http_conv.c MINOR: sample: date converter takes HTTP date and output an UNIX timestamp 2024-06-20 16:38:48 +02:00
http_ext.c OPTIM: http_ext: avoid useless copy in http_7239_extract_{ipv4,ipv6} 2024-03-25 16:24:15 +01:00
http_fetch.c MEDIUM: tree-wide: add logformat expressions wrapper 2024-04-04 19:10:01 +02:00
http_htx.c BUG/MINOR: http-htx: Support default path during scheme based normalization 2024-05-24 16:17:24 +02:00
http_rules.c MAJOR: log: implement proper postparsing for logformat expressions 2024-04-04 19:10:01 +02:00
http.c MEDIUM: http: add the ability to redefine http-err-codes and http-fail-codes 2024-01-11 15:10:08 +01:00
htx.c CLEANUP: assorted typo fixes in the code and comments 2023-11-23 16:23:14 +01:00
init.c
jwt.c BUG/MEDIUM: jwt: Clear SSL error queue on error when checking the signature 2024-07-26 16:59:00 +02:00
lb_chash.c MEDIUM: lb-chash: Deterministic node hashes based on server address 2024-04-02 07:00:10 +02:00
lb_fas.c
lb_fwlc.c
lb_fwrr.c
lb_map.c
lb_ss.c MINOR: lbprm: implement true "sticky" balance algo 2024-03-29 17:08:37 +01:00
limits.c MINOR: debug: use LIM2A to show limits 2024-07-16 14:04:41 +02:00
linuxcap.c MINOR: capabilities: use _LINUX_CAPABILITY_VERSION_3 2024-06-26 07:38:21 +02:00
listener.c BUG/MEDIUM: cli: Deadlock when setting frontend maxconn 2024-09-25 17:12:11 +02:00
log.c MINOR: log: add do_log_parse_act() helper func 2024-10-04 21:38:08 +02:00
lru.c BUG/MINOR: lru: fix the standalone test case for invalid revision 2024-04-13 08:43:12 +02:00
mailers.c MEDIUM: mailers: warn about deprecated legacy mailers 2024-09-23 20:16:27 +02:00
map.c MEDIUM: cli/applet: Stop to test opposite SC in I/O handler of CLI commands 2024-03-28 17:28:20 +01:00
mjson.c
mqtt.c CLEANUP: mqtt: fix typo in MQTT_REMAINING_LENGHT_MAX_SIZE 2024-08-30 14:58:59 +02:00
mux_fcgi.c CLEANUP: muxes: remove useless inclusion of ebmbtree.h 2024-10-12 16:29:15 +02:00
mux_h1.c CLEANUP: muxes: remove useless inclusion of ebmbtree.h 2024-10-12 16:29:15 +02:00
mux_h2.c MINOR: mux-h2/traces: add buffer-related info to h2s and h2c 2024-10-12 18:07:21 +02:00
mux_pt.c BUG/MEDIUM: mux-pt: Fix condition to perform a shutdown for writes in mux_pt_shut() 2024-09-03 15:25:05 +02:00
mux_quic.c BUG/MEDIUM: quic: support wait-for-handshake 2024-10-16 11:51:35 +02:00
mux_spop.c CLEANUP: muxes: remove useless inclusion of ebmbtree.h 2024-10-12 16:29:15 +02:00
mworker-prog.c MEDIUM: startup: remove MODE_MWORKER_WAIT 2024-10-16 22:02:39 +02:00
mworker.c MINOR: mworker/cli: add _send_status to support state transition 2024-10-16 22:02:39 +02:00
namespace.c
ncbuf.c
pattern.c BUG/MINOR: pattern: do not leave a leading comma on "set" error messages 2024-09-10 08:55:29 +02:00
payload.c
peers.c BUG/MINOR: peers: local entries updates may not be advertised after resync 2024-09-16 14:06:39 +02:00
pipe.c
pool.c OPTIM: pool: improve needed_avg cache line access pattern 2024-07-09 16:46:38 +02:00
proto_quic.c CLEANUP: protocol: no longer initialize .receivers nor .nb_receivers 2024-08-21 17:37:46 +02:00
proto_rhttp.c MINOR: protocol: add the real address family to the protocol 2024-08-21 17:37:46 +02:00
proto_sockpair.c CLEANUP: protocol: no longer initialize .receivers nor .nb_receivers 2024-08-21 17:37:46 +02:00
proto_tcp.c MEDIUM: protocol: add MPTCP per address support 2024-08-30 18:53:49 +02:00
proto_udp.c CLEANUP: protocol: no longer initialize .receivers nor .nb_receivers 2024-08-21 17:37:46 +02:00
proto_uxdg.c CLEANUP: protocol: no longer initialize .receivers nor .nb_receivers 2024-08-21 17:37:46 +02:00
proto_uxst.c CLEANUP: protocol: no longer initialize .receivers nor .nb_receivers 2024-08-21 17:37:46 +02:00
protocol.c MEDIUM: protocol: add MPTCP per address support 2024-08-30 18:53:49 +02:00
proxy.c MINOR: proxy: add log_steps struct member 2024-09-26 16:53:07 +02:00
qmux_http.c MEDIUM: mux-quic: add BUG_ON if sending on locally closed QCS 2023-12-21 15:42:08 +01:00
qmux_trace.c MINOR: mux-quic: add buf_in_flight to QCC debug infos 2024-08-22 17:48:23 +02:00
qpack-dec.c MINOR: h3/qpack: adjust naming for errors 2024-05-16 10:31:17 +02:00
qpack-enc.c BUG/MEDIUM: qpack: allow 6xx..9xx status codes 2024-01-29 15:40:19 +01:00
qpack-tbl.c
queue.c BUG/MEDIUM: queue: always dequeue the backend when redistributing the last server 2024-10-01 18:57:51 +02:00
quic_ack.c BUILD: quic: Variable name typo inside a BUG_ON(). 2024-02-05 14:31:21 +01:00
quic_cc_cubic.c BUILD: quic: 32bits build broken by wrong integer conversions for printf() 2024-08-26 11:21:48 +02:00
quic_cc_newreno.c MINOR: quic: Avoid cc priv buffer overflow. 2024-07-24 11:07:19 +02:00
quic_cc_nocc.c REORG: quic: Move QUIC path definitions/declarations to quic_cc module 2023-11-28 15:37:50 +01:00
quic_cc.c
quic_cid.c CLEANUP: assorted typo fixes in the code and comments 2024-09-03 17:49:21 +02:00
quic_cli.c BUILD: quic: 32bits build broken by wrong integer conversions for printf() 2024-08-26 11:21:48 +02:00
quic_conn.c MINOR: quic: notify connection layer on handshake completion 2024-10-16 11:42:06 +02:00
quic_fctl.c MINOR: mux-quic: define a flow control related type 2024-01-31 16:28:54 +01:00
quic_frame.c MINOR: quic: implement dedicated type for out-of-order stream ACK 2024-10-04 17:56:45 +02:00
quic_loss.c MINOR: quic: store the lost packets counter in the quic_cc_event element 2024-08-21 08:02:44 +02:00
quic_openssl_compat.c BUG/MEDIUM: quic: keylog callback not called (USE_OPENSSL_COMPAT) 2024-01-16 10:17:27 +01:00
quic_retransmit.c MINOR: quic: implement dedicated type for out-of-order stream ACK 2024-10-04 17:56:45 +02:00
quic_retry.c BUG/MEDIUM: quic: always validate sender address on 0-RTT 2024-08-30 17:04:09 +02:00
quic_rules.c MINOR: action: add do-log action 2024-10-04 21:38:14 +02:00
quic_rx.c MINOR: quic: implement dedicated type for out-of-order stream ACK 2024-10-04 17:56:45 +02:00
quic_sock.c BUILD: quic: fix build errors on FreeBSD since recent GSO changes 2024-08-30 18:53:49 +02:00
quic_ssl.c BUG/MINOR: quic: Crash from trace dumping SSL eary data status (AWS-LC) 2024-09-02 10:01:41 +02:00
quic_stats.c MINOR: stats: introduce a more expressive stat definition method 2024-04-26 10:20:57 +02:00
quic_stream.c BUG/MEDIUM: quic: properly decount out-of-order ACK on stream release 2024-10-09 17:47:16 +02:00
quic_tls.c MINOR: quic: refactor STREAM room notification 2024-10-01 16:19:25 +02:00
quic_token.c MINOR: quic: Token for future connections implementation. 2024-08-30 17:04:09 +02:00
quic_tp.c BUG/MEDIUM: quic: don't blindly rely on unaligned accesses 2024-04-06 00:07:49 +02:00
quic_trace.c MINOR: quic: implement dedicated type for out-of-order stream ACK 2024-10-04 17:56:45 +02:00
quic_tx.c MINOR: quic: implement dedicated type for out-of-order stream ACK 2024-10-04 17:56:45 +02:00
raw_sock.c MEDIUM: raw-sock: Specifiy amount of data to send via snd_pipe callback 2023-10-17 18:51:13 +02:00
regex.c
resolvers.c MEDIUM: startup: remove MODE_MWORKER_WAIT 2024-10-16 22:02:39 +02:00
ring.c MINOR: ring: count processed messages in ring_dispatch_messages() 2024-07-24 17:59:03 +02:00
sample.c MINOR: sample: postresolve sink names in debug() converter 2024-10-10 16:55:15 +02:00
server_state.c BUG/MEDIUM: server: server stuck in maintenance after FQDN change 2024-10-16 14:26:57 +02:00
server.c BUG/MEDIUM: server: server stuck in maintenance after FQDN change 2024-10-16 14:26:57 +02:00
session.c MINOR: session/trace: enable very minimal session tracing 2024-08-07 16:02:59 +02:00
sha1.c
shctx.c DEBUG: shctx: name shared memory using vma_set_name() 2024-05-21 17:55:03 +02:00
signal.c CLEANUP: assorted typo fixes in the code and comments 2023-11-23 16:23:14 +01:00
sink.c MEDIUM: sink: implement sink_find_early() 2024-10-10 16:55:15 +02:00
slz.c
sock_inet.c MEDIUM: protocol: add MPTCP per address support 2024-08-30 18:53:49 +02:00
sock_unix.c MINOR: protocol: add the real address family to the protocol 2024-08-21 17:37:46 +02:00
sock.c MEDIUM: protocol: add MPTCP per address support 2024-08-30 18:53:49 +02:00
ssl_ckch.c MEDIUM: ssl/cli: "dump ssl cert" allow to dump a certificate in PEM format 2024-09-09 16:54:48 +02:00
ssl_clienthello.c BUILD: ssl: replace USE_OPENSSL_AWSLC by OPENSSL_IS_AWSLC 2024-07-30 18:53:08 +02:00
ssl_crtlist.c MEDIUM: ssl: don't load file by discovering them in crt-store 2024-05-21 18:30:45 +02:00
ssl_gencert.c MEDIUM: ssl: allow to change the OpenSSL security level from global section 2024-03-12 17:37:11 +01:00
ssl_ocsp.c MINOR: tools: extend str2sa_range to add an alt parameter 2024-08-30 18:53:49 +02:00
ssl_sample.c MEDIUM: ssl/sample: add ssl_fc_sigalgs_bin sample fetch 2024-08-26 15:17:40 +02:00
ssl_sock.c MINOR: ssl: disable server side default CRL check with WolfSSL 2024-10-10 09:31:19 +02:00
ssl_utils.c
stats-file.c BUILD: stats: remove non portable getline() usage 2024-05-17 14:53:19 +02:00
stats-html.c BUG/MEDIUM: cache/stats: Wait to have the request before sending the response 2024-09-16 22:55:40 +02:00
stats-json.c MINOR: stats: update ambiguous "metrics" naming to "stat_cols" 2024-04-26 10:20:57 +02:00
stats-proxy.c CLEANUP: assorted typo fixes in the code and comments 2024-09-03 17:49:21 +02:00
stats.c BUG/MINOR: stats: Fix the name for the total number of streams created 2024-10-04 15:44:40 +02:00
stconn.c BUG/MINOR: stream: unblock stream on wait-for-handshake completion 2024-10-16 11:44:31 +02:00
stick_table.c CLEANUP: stick-table: make the file location point to a global file name 2024-09-19 15:38:19 +02:00
stream.c MINOR: stream/stats: Expose the total number of streams ever created in stats 2024-09-30 16:55:53 +02:00
systemd.c MEDIUM: mworker: get rid of libsystemd 2024-04-03 15:53:18 +02:00
task.c CLEANUP: assorted typo fixes in the code and comments 2023-11-23 16:23:14 +01:00
tcp_act.c MINOR: action: add do-log action 2024-10-04 21:38:14 +02:00
tcp_rules.c MINOR: log/backend: prevent tcp-{request,response} use with LOG mode 2023-11-18 11:16:21 +01:00
tcp_sample.c MINOR: tcp_sample: Move TCP low level sample fetch function to control layer 2024-07-31 10:29:42 +02:00
tcpcheck.c MINOR: tcpcheck: Add support for an option host header value for httpchk option 2024-10-02 10:22:51 +02:00
thread.c MINOR: config: add thread-hard-limit to set an upper bound to nbthread 2024-05-24 09:46:49 +02:00
time.c
tools.c MINOR: tools: add minimal file name management 2024-09-19 15:36:58 +02:00
trace.c MINOR: trace: postresolve sink names 2024-10-10 16:55:15 +02:00
uri_auth.c MINOR: stats: use STAT_F_* prefix for flags 2024-04-22 16:25:18 +02:00
uri_normalizer.c BUILD: tree-wide: cast arguments to tolower/toupper to unsigned char (2) 2024-07-18 13:29:52 +02:00
vars.c OPTIM: vars: use multiple name heads in the vars struct 2024-09-15 23:51:51 +02:00
version.c
wdt.c
xprt_handshake.c
xprt_quic.c MINOR: quic: dump quic_conn debug string for logs 2024-08-07 15:40:52 +02:00