haproxy/src
Aurelien DARRAGON 334ebfa1a2 MEDIUM: server/dns: clear RMAINT when addr resolves again
snr_update_srv_status() and srvrq_update_srv_status() will both set or
clear the server RMAINT state depending of the result of the current dns
resolution.

This used to work pretty well in the past, but now that addr:svc_port
changes are changed atomically through a dedicated task, the change is
performed asynchronously, so this can cause some flapping issues if the
server is put out of maintenance while the server's address is still
unassigned.

To prevent errors, the resolver's code is now only allowed to put the
server under maintenance but not to remove it from maintenance:

the decision to remove a server from maintenance is performed by the task
responsible for updating the server's addr: if the addr resolves again
thanks to a valid DNS resolution and the server was previously under
RMAINT, then it cleared from RMAINT state.

srvrq_update_srv_status() was renamed srvrq_set_srv_down(), since it is
only called to put the server in maintenance as a result of a failing
SRV entry.

snr_update_srv_status() was renamed srv_set_srv_down() and slightly
modified so that it only takes care of putting the server under
maintenance when needed.

The cli command "set server x/y addr" does not need to remove the RMAINT
flag anymore.
2023-12-21 14:22:27 +01:00
..
acl.c CLEANUP: assorted typo fixes in the code and comments 2023-11-23 16:23:14 +01:00
action.c MINOR: support for http-request set-timeout client 2023-09-28 08:49:22 +02:00
activity.c MINOR: activity: report profiling duration and age in "show profiling" 2023-11-14 11:46:37 +01:00
applet.c MINOR: applets: Use channel's field to compute amount of data received 2023-12-06 10:24:41 +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 DEBUG: unstatify a few functions that are often present in backtraces 2023-11-30 17:15:54 +01:00
base64.c
cache.c MINOR: cache: Add global option to enable/disable zero-copy forwarding 2023-12-06 10:24:41 +01:00
calltrace.c BUG/MINOR: calltrace: fix 'now' being used in place of 'date' 2023-04-27 18:14:57 +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: protocol: move the global reuseport flag to the protocols 2023-04-23 09:46:15 +02:00
cfgdiag.c
cfgparse-global.c BUG/MINOR: ext-check: cannot use without preserve-env 2023-12-08 14:26:06 +01:00
cfgparse-listen.c BUG/MINOR: cfgparse-listen: fix warning being reported as an alert 2023-12-01 09:09:45 +01:00
cfgparse-quic.c MINOR: mux-quic: Add global option to enable/disable zero-copy forwarding 2023-12-04 15:33:52 +01:00
cfgparse-ssl.c BUG/MINOR: ssl: load correctly @system-ca when ca-base is define 2023-10-23 22:03:55 +02:00
cfgparse-tcp.c BUG/MINOR: cfgparse-tcp: leak when re-declaring interface from bind line 2023-06-06 15:15:17 +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: proxy: monitor-uri works with tcp->http upgrades 2023-12-21 14:22:26 +01:00
channel.c MINOR: tree-wide: Only rely on co_data() to check channel emptyness 2023-10-17 18:51:13 +02:00
check.c CLEANUP: assorted typo fixes in the code and comments 2023-11-23 16:23:14 +01:00
chunk.c MEDIUM: init: initialize the trash earlier 2023-09-08 16:25:19 +02:00
cli.c CLEANUP: mworker/cli: add comments about pcli_find_and_exec_kw() 2023-12-07 18:04:41 +01:00
clock.c MINOR: clock: provide a function to automatically adjust now_offset 2023-05-17 09:33:54 +02:00
compression.c MINOR: compression/slz: add support for a pure flush of pending bytes 2023-06-30 16:12:36 +02:00
connection.c MINOR: rhttp: add count of active conns per thread 2023-11-23 17:43:01 +01:00
cpuset.c REORG: cpuset: move parse_cpu_set() and parse_cpumap() to cpuset.c 2023-09-08 16:25:19 +02:00
debug.c CLEANUP: assorted typo fixes in the code and comments 2023-11-23 16:23:14 +01: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.c MEDIUM: tree-wide: Change sc API to specify required free space to progress 2023-05-05 15:44:23 +02:00
dynbuf.c CLEANUP: assorted typo fixes in the code and comments 2023-11-23 16:23:14 +01:00
eb32sctree.c
eb32tree.c
eb64tree.c
ebimtree.c
ebistree.c
ebmbtree.c
ebpttree.c
ebsttree.c
ebtree.c
errors.c MEDIUM: errors: move the MODE_QUIET test in print_message() 2023-11-09 14:39:11 +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: event_hdl: add global tunables 2023-11-29 08:59:27 +01:00
extcheck.c MINOR: ext-check: add an option to preserve environment variables 2023-11-23 16:53:57 +01:00
fcgi-app.c Revert "MINOR: fcgi-app: "use-fcgi-app" requires TCP or HTTP mode" 2023-11-18 11:16:21 +01:00
fcgi.c BUG/MAJOR: fcgi: Fix uninitialized reserved bytes 2022-12-09 12:23:14 +01:00
fd.c BUG/MEDIUM: fd: don't wait for tmask to stabilize if we're not in it. 2023-04-13 18:04:46 +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 CLEANUP: assorted typo fixes in the code and comments 2023-11-23 16:23:14 +01:00
flt_http_comp.c BUG/MINOR: compression: possible NULL dereferences in comp_prepare_compress_request() 2023-11-29 08:59:27 +01:00
flt_spoe.c MEDIUM: tree-wide: logsrv struct becomes logger 2023-10-13 10:05:06 +02:00
flt_trace.c BUG/MINOR: trace: show wall-clock date, not internal date in show activity 2023-04-27 18:22:34 +02:00
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 MINOR: frontend: implement a dedicated actconn increment function 2023-10-26 15:18:48 +02:00
h1.c BUG/MEDIUM: h1: Ignore C-L value in the H1 parser if T-E is also set 2023-10-04 15:34:18 +02:00
h1_htx.c MINOR: h1-htx: Declare successful tunnel establishment as bodyless 2023-10-04 15:34:18 +02:00
h2.c MINOR: h2: Set the BODYLESS_RESP flag on the HTX start-line if necessary 2023-10-17 18:51:13 +02:00
h3.c MINOR: h3: use INTERNAL_ERROR code for init failure 2023-12-20 15:40:02 +01:00
h3_stats.c MINOR: h3: Add a statistics module for h3 2022-05-30 09:59:26 +02:00
haproxy.c MINOR: mux-quic: Disable zero-copy forwarding for send by default 2023-12-04 15:36:02 +01:00
hash.c BUILD: hash: use __fallthrough in hash_djb2() 2022-11-14 11:14:02 +01:00
hlua.c OPTIM: server: ebtree lookups for findserver_unique_* functions 2023-12-21 14:22:26 +01:00
hlua_fcn.c MEDIUM: server: make server_set_inetaddr() updater serializable 2023-12-21 14:22:27 +01:00
hpack-dec.c BUG/CRITICAL: http: properly reject empty http header field names 2023-02-14 08:48:54 +01:00
hpack-enc.c
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: hq-interop: use zero-copy to transfer single HTX data block 2023-12-12 10:31:22 +01:00
http.c MINOR: sample: Add fetcher for getting all cookie names 2023-11-03 09:57:06 +01:00
http_acl.c
http_act.c MEDIUM: http-ana: Set termination state before returning haproxy response 2023-11-29 11:11:12 +01:00
http_ana.c BUG/MEDIUM: stats: unhandled switching rules with TCP frontend 2023-12-21 14:21:53 +01:00
http_client.c DEBUG: unstatify a few functions that are often present in backtraces 2023-11-30 17:15:54 +01:00
http_conv.c CLEANUP: assorted typo fixes in the code and comments 2023-04-01 18:33:40 +02:00
http_ext.c BUG/MINOR: http_ext: unhandled ERR_ABORT in proxy_http_parse_7239() 2023-07-06 15:41:17 +02:00
http_fetch.c MINOR: http-fetch: Add a sample to get the transaction status code 2023-11-29 11:11:12 +01:00
http_htx.c BUILD: http_htx: silence uninitialized warning on some gcc versions 2023-12-01 20:46:24 +01:00
http_rules.c MINOR: tree-wide: use free_acl_cond() where relevant 2023-05-11 15:37:04 +02:00
htx.c CLEANUP: assorted typo fixes in the code and comments 2023-11-23 16:23:14 +01:00
init.c MINOR: init: add the pre-check callback 2022-04-22 15:45:47 +02:00
jwt.c MINOR: jwt: Add support for RSA-PSS signatures (PS256 algorithm) 2023-03-08 10:43:04 +01:00
lb_chash.c CLEANUP: assorted typo fixes in the code and comments 2023-11-23 16:23:14 +01:00
lb_fas.c
lb_fwlc.c
lb_fwrr.c
lb_map.c
linuxcap.c MEDIUM: capabilities: enable support for Linux capabilities 2023-08-29 11:11:50 +02:00
listener.c MINOR: rhttp: mark reverse HTTP as experimental 2023-11-30 15:04:27 +01:00
log.c MINOR: muxes: Rename mux_ctl_type values to use MUX_CTL_ prefix 2023-11-29 11:11:12 +01:00
lru.c BUILD/DEBUG: lru: fix printf format in debug code 2022-04-12 08:19:33 +02:00
mailers.c MINOR: mailers/hlua: disable email sending from lua 2023-05-05 16:28:32 +02:00
map.c BUILD: map: fix build warning 2023-11-27 15:03:41 +01:00
mjson.c BUILD: mjson: Fix warning about unused variables 2023-05-11 09:22:46 +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 MINOR: muxes: Implement ->sctl() callback for muxes and return the stream id 2023-11-29 11:11:12 +01:00
mux_h1.c CLEANUP: mux-h1: Fix a trace message about C-L header addition 2023-12-13 16:45:29 +01:00
mux_h2.c BUG/MEDIUM: mux-h2: Don't report error on SE for closed H2 streams 2023-12-18 21:15:32 +01:00
mux_pt.c MINOR: mux-pt: Add global option to enable/disable zero-copy forwarding 2023-12-04 15:32:32 +01:00
mux_quic.c MINOR: h3: use INTERNAL_ERROR code for init failure 2023-12-20 15:40:02 +01:00
mworker-prog.c MEDIUM: clock: replace timeval "now" with integer "now_ns" 2023-04-28 16:08:08 +02:00
mworker.c MINOR: mworker/cli: implement hard-reload over the master CLI 2023-11-24 21:44:25 +01:00
namespace.c BUG/MINOR: namespace: missing free in netns_sig_stop() 2023-06-14 11:27:29 +02:00
ncbuf.c MINOR: ncbuf: missing malloc checks in standalone code 2023-05-12 09:45:30 +02:00
pattern.c BUG/MEDIUM: map/acl: pat_ref_{set,delete}_by_id regressions 2023-12-08 14:26:06 +01:00
payload.c MEDIUM: tree-wide: fetches that may return IPV4+IPV6 now return ADDR 2023-07-03 16:32:01 +02:00
peers.c BUG/MEDIUM: peers: fix partial message decoding 2023-12-05 09:28:53 +01:00
pipe.c
pool.c CLEANUP: assorted typo fixes in the code and comments 2023-11-23 16:23:14 +01:00
proto_quic.c CLEANUP: Re-apply xalloc_size.cocci (3) 2023-11-06 20:49:56 +01:00
proto_rhttp.c MINOR: muxes: Rename mux_ctl_type values to use MUX_CTL_ prefix 2023-11-29 11:11:12 +01:00
proto_sockpair.c MEDIUM: proto: duplicate receivers marked RX_F_MUST_DUP 2023-04-21 17:41:26 +02:00
proto_tcp.c MINOR: protocol: move the global reuseport flag to the protocols 2023-04-23 09:46:15 +02:00
proto_udp.c MINOR: dgram: allow to set rcv/sndbuf for dgram sockets as well 2023-10-18 17:01:19 +02:00
proto_uxdg.c MINOR: proto_ux: ability to dump ABNS names in error messages 2023-02-23 15:05:05 +01:00
proto_uxst.c MINOR: proto: skip socket setup for duped FDs 2023-04-21 17:41:26 +02:00
protocol.c MINOR: quic+openssl_compat: Do not start without "limited-quic" 2023-08-17 15:44:03 +02:00
proxy.c OPTIM: server: ebtree lookups for findserver_unique_* functions 2023-12-21 14:22:26 +01:00
qmux_http.c MINOR: mux-quic: factorize QC_SF_UNKNOWN_PL_LENGTH set 2023-12-12 10:14:22 +01:00
qmux_trace.c MINOR: mux-quic: add flow-control info to minimal trace level 2023-03-22 16:08:54 +01:00
qpack-dec.c BUG/MINOR: mux-quic: fix transport VS app CONNECTION_CLOSE 2023-05-09 18:42:34 +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 MEDIUM: clock: replace timeval "now" with integer "now_ns" 2023-04-28 16:08:08 +02:00
quic_ack.c REORG: quic: cleanup traces definition 2023-10-11 14:15:31 +02:00
quic_cc.c CLEANUP: quic: fix headers 2022-10-03 16:25:17 +02:00
quic_cc_cubic.c REORG: quic: Move QUIC path definitions/declarations to quic_cc module 2023-11-28 15:37:50 +01:00
quic_cc_newreno.c REORG: quic: Move QUIC path definitions/declarations to quic_cc module 2023-11-28 15:37:50 +01: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_cid.c CLEANUP: quic_cid: remove unused listener arg 2023-11-30 15:04:27 +01:00
quic_cli.c REORG: quic: Move some QUIC CLI code to its C file 2023-11-28 15:37:22 +01:00
quic_conn.c REORG: quic: Move quic_increment_curr_handshake() to quic_sock 2023-11-28 15:47:18 +01:00
quic_frame.c MEDIUM: quic: Heavy task mode during handshake 2023-11-09 10:32:31 +01:00
quic_loss.c REORG: quic: Rename some functions used upon ACK receipt 2023-11-28 15:37:50 +01:00
quic_openssl_compat.c BUG/MEDIUM: quic: Possible buffer overflow when building TLS records 2023-12-08 10:03:33 +01:00
quic_retransmit.c REORG: quic: Add a new module for retransmissions 2023-11-28 15:47:18 +01:00
quic_retry.c REORG: quic: Add a new module for QUIC retry 2023-11-28 15:47:18 +01:00
quic_rx.c BUG/MEDIUM: quic: QUIC CID removed from tree without locking 2023-12-13 14:42:50 +01:00
quic_sock.c REORG: quic: Move the QUIC DCID parser to quic_sock.c 2023-11-28 15:37:50 +01:00
quic_ssl.c REORG: quic: Move QUIC SSL BIO method related functions to quic_ssl.c 2023-11-28 15:37:50 +01:00
quic_stats.c MINOR: quic: fix stats naming for flow control BLOCKED frames 2023-05-26 17:17:00 +02:00
quic_stream.c BUG/MINOR: mux-quic: differentiate failure on qc_stream_desc alloc 2023-05-12 16:26:20 +02:00
quic_tls.c REORG: quic: Move QUIC CRYPTO stream definitions/declarations to QUIC TLS 2023-11-28 15:37:22 +01:00
quic_tp.c MINOR: quic_tp: use in_addr/in6_addr for preferred_address 2023-11-30 15:59:45 +01:00
quic_trace.c CLEANUP: assorted typo fixes in the code and comments 2023-11-23 16:23:14 +01:00
quic_tx.c REORG: quic: Add a new module for retransmissions 2023-11-28 15:47:18 +01: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 BUG/MINOR: regex: Properly handle PCRE2 lib compiled without JIT support 2022-09-01 19:34:46 +02:00
resolvers.c MEDIUM: server/dns: clear RMAINT when addr resolves again 2023-12-21 14:22:27 +01:00
ring.c CLEANUP: assorted typo fixes in the code and comments 2023-11-23 16:23:14 +01:00
sample.c BUG/MINOR: sample: Make the word converter compatible with -m found 2023-12-01 14:35:47 +01:00
server.c MEDIUM: server/dns: clear RMAINT when addr resolves again 2023-12-21 14:22:27 +01:00
server_state.c BUG/MINOR: server-state: Avoid warning on 'file not found' 2023-07-21 15:08:27 +02:00
session.c CLEANUP: assorted typo fixes in the code and comments 2023-11-23 16:23:14 +01:00
sha1.c
shctx.c BUG/MINOR: shctx: Remove old HA_SPIN_INIT 2023-11-17 16:56:18 +01:00
signal.c CLEANUP: assorted typo fixes in the code and comments 2023-11-23 16:23:14 +01:00
sink.c CLEANUP: assorted typo fixes in the code and comments 2023-11-23 16:23:14 +01:00
slz.c IMPORT: slz: implement a synchronous flush() operation 2023-06-30 16:12:36 +02:00
sock.c BUG/MINOR: sock: mark abns sockets as non-suspendable and always unbind them 2023-11-20 11:38:26 +01:00
sock_inet.c MINOR: protocol: move the global reuseport flag to the protocols 2023-04-23 09:46:15 +02:00
sock_unix.c BUG/MINOR: sock: mark abns sockets as non-suspendable and always unbind them 2023-11-20 11:38:26 +01:00
ssl_ckch.c BUG/MINOR: ssl: Wrong OCSP CID after modifying an SSL certficate 2023-12-06 16:12:08 +01:00
ssl_crtlist.c MINOR: ssl: allow to change the signature algorithm for client authentication 2023-05-05 00:05:46 +02:00
ssl_ocsp.c BUG/MINOR: ssl: Fix potential leak in cli_parse_update_ocsp_response 2023-03-31 09:10:36 +02:00
ssl_sample.c MEDIUM: ssl: new sample fetch method to get curve name 2023-07-17 15:45:41 +02:00
ssl_sock.c MINOR: ssl: activate the certificate selection callback for WolfSSL 2023-12-08 12:08:01 +01:00
ssl_utils.c BUILD: ssl: ssl_c_r_dn fetches uses functiosn only available since 1.1.1 2023-05-15 12:07:52 +02:00
stats.c MINOR: stats: store the parent proxy in stats ctx (http) 2023-12-21 14:20:03 +01:00
stconn.c MINOR: channel: Use dedicated functions to deal with STREAMER flags 2023-12-06 10:24:41 +01:00
stick_table.c BUG/MINOR: proxy/stktable: missing frees on proxy cleanup 2023-11-18 11:16:21 +01:00
stream.c DEBUG: stream: Report lra/fsb values for front end back SC in stream dump 2023-12-01 11:25:49 +01:00
task.c CLEANUP: assorted typo fixes in the code and comments 2023-11-23 16:23:14 +01:00
tcp_act.c MINOR: rhttp: mark reverse HTTP as experimental 2023-11-30 15:04:27 +01: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: sample: accept_date / request_date return %Ts / %tr timestamp values 2023-07-24 17:12:29 +02:00
tcpcheck.c MINOR: tools: make str2sa_range() directly return type hints 2023-11-10 17:49:57 +01:00
thread.c MEDIUM: cache: Use dedicated cache tree lock alongside shctx lock 2023-11-16 19:35:10 +01:00
time.c
tools.c BUG/MINOR: config: Stopped parsing upon unmatched environment variables 2023-11-30 16:48:41 +01:00
trace.c MINOR: trace: support -dt optional format 2023-11-27 17:15:14 +01:00
uri_auth.c
uri_normalizer.c
vars.c CLEANUP: assorted typo fixes in the code and comments 2023-11-23 16:23:14 +01:00
version.c
wdt.c BUG/MEDIUM: wdt: fix wrong thread being checked for sleeping 2023-02-17 16:01:34 +01: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/MAJOR: quic: complete thread migration before tcp-rules 2023-11-20 16:11:26 +01:00