Hi, HAProxy 2.7-dev7 was released on 2022/10/03. It added 62 new commits after version 2.7-dev6.
This is another quiet release, which could be encouraging when we think that we're probably less than 2 months from the release now, but there's still some work left to be done in various areas. The usual bunch of bugs were addressed (resolvers crashing, a few QUIC issues, idle connections to servers failing to be reused on 32-bit machines due to an alignment issue, some minor issues in Lua, logging, HTTP/1 and checks). The master CLI is now passed over the new master process so that it can provide a status back upon reload. That allows not only the caller to wait for a reload to complete, but also to know if it worked well. Note that the output format is not definitive, we discussed a small change to allow it to be slightly more future-proof. But that's just a matter of what the line will look like so that's pretty minor. The CLI output anonymization work was slightly improved (better arrangement of commands now all under "set anon" / "show anon", some more fields are encoded and some well-known address schemes are recognized and left as-is, such as "stdout", "sockpair@" or "fd@"). The anonymized config file was improved similarly. It's now possible from -dC to indicate whether or not the output wants line numbers. The clock synchronization between threads could take a lot of CPU when using many threads, and this was improved as well, pushing the upper limit from 7.3M to 66M event loops per second on a 48 threads machine. The SMTP check now sends a QUIT command to save some servers from logging an error. The "lua-load" and "lua-load-per-thread" directives now support passing optional arguments after the script's name. This long-awaited feature will allow to pass initial settings, timeouts, IP addresses or whatever from the config itself without having to either modify the script each time, nor hacking around environment variables. There are still a few pending issues with/without patches in progress, but I didn't want them to hold the release (some Lua stuff from Aurélien, Olivier and Thierry, an issue in the FD layer where a shutdown is sometimes upgraded to an error making some checks fail, the idle_conns pool that needs to be moved per-thread group, etc. Nothing dramatic but that will need to be addressed anyway. Overall it's looking fine. Please find the usual URLs below : Site index : https://www.haproxy.org/ Documentation : https://docs.haproxy.org/ Wiki : https://github.com/haproxy/wiki/wiki Discourse : https://discourse.haproxy.org/ Slack channel : https://slack.haproxy.org/ Issue tracker : https://github.com/haproxy/haproxy/issues Sources : https://www.haproxy.org/download/2.7/src/ Git repository : https://git.haproxy.org/git/haproxy.git/ Git Web browsing : https://git.haproxy.org/?p=haproxy.git Changelog : https://www.haproxy.org/download/2.7/src/CHANGELOG Pending bugs : https://www.haproxy.org/l/pending-bugs Reviewed bugs : https://www.haproxy.org/l/reviewed-bugs Code reports : https://www.haproxy.org/l/code-reports Latest builds : https://www.haproxy.org/l/dev-packages Willy --- Complete changelog : Amaury Denoyelle (6): BUG/MEDIUM: mux-quic: fix nb_hreq decrement BUG/MINOR: mux-quic: do not keep detached qcs with empty Tx buffers REORG: mux-quic: extract traces in a dedicated source file REORG: mux-quic: export HTTP related function in a dedicated file MINOR: mux-quic: refactor snd_buf BUG/MEDIUM: mux-quic: properly trim HTX buffer on snd_buf reset Aurelien DARRAGON (10): BUG/MINOR: log: improper behavior when escaping log data CLEANUP: tools: removing escape_chunk() function MINOR: list: documenting mt_list_for_each_entry_safe() macro BUG/MINOR: hlua: fixing ambiguous sizeof in hlua_load_per_thread BUG/MINOR: hlua: fixing hlua_http_msg_del_data behavior BUG/MINOR: hlua: fixing hlua_http_msg_insert_data behavior BUG/MINOR: hlua: _hlua_http_msg_delete incorrect behavior when offset is used BUG/MINOR: hlua: prevent crash when loading numerous arguments using lua-load(per-thread) DOC/CLEANUP: lua-api: removing duplicate date functions doc MINOR: hlua: ambiguous lua_pushvalue with 0 index Christopher Faulet (10): BUG/MINOR: mux-h1: Account consumed output data on synchronous connection error REGTESTS: 4be_1srv_smtpchk_httpchk_layer47errors: Return valid SMTP replies MINOR: smtpchk: Update expect rule to fully match replies to EHLO commands CLEANUP: list: Fix mt_list_for_each_entry_safe indentation BUG/MINOR: stream: Perform errors handling in right order in stream_new() BUG/MEDIUM: stconn: Reset SE descriptor when we fail to create a stream BUG/MEDIUM: resolvers: Remove aborted resolutions from query_ids tree Revert "BUG/MINOR: config: don't count trailing spaces as empty arg" MINOR: tools: Impprove hash_ipanon to support dgram sockets and port offsets MINOR: tools: Impprove hash_ipanon to not hash FD-based addresses Erwan Le Goas (12): BUG/MINOR: anon: memory illegal accesses in tools.c with hash_anon and hash_ipanon BUG/MINOR: config: don't count trailing spaces as empty arg MINOR: cli: Add anonymization on a missed element for 'show sess all' MINOR: cli: remove error message with 'set anon on|off' MINOR: tools: modify hash_ipanon in order to use it in cli MINOR: cli: use hash_ipanon to anonymized address MINOR: cli: Add an anonymization on a missed element in 'show server state' MINOR: config: correct errors about argument number in condition in cfgparse.c MINOR: config: Add other keywords when dump the anonymized configuration file MINOR: config: Add option line when the configuration file is dumped MINOR: cli: correct commentary and replace 'set global-key' name BUG/MINOR: config: don't count trailing spaces as empty arg (v2) Miroslav Zagorac (2): CLEANUP: httpclient: deleted unused variables MINOR: httpclient: enabled the use of SNI presets Thierry Fournier (3): BUG/MINOR: hlua: Remove \n in Lua error message built with memprintf MINOR: hlua: Allow argument on lua-lod(-per-thread) directives BUG/MINOR: config: insufficient syntax check of the global "maxconn" value William Lallemand (10): MEDIUM: mworker/cli: keep the connection of the FD that ask for a reload MINOR: mworker/cli: replace close() by fd_delete() MINOR: mworker: store and shows loading status MINOR: mworker: mworker_cli_proxy_new_listener() returns a bind_conf MINOR: mworker: stores the mcli_reload bind_conf MINOR: mworker/cli: the mcli_reload bind_conf only send the reload status DOC: management: describe the new reload command behavior DOC: management: add timeout on the "reload" command BUG/MINOR: ring: fix the size check in ring_make_from_area() DOC: management: httpclient can resolve server names in URLs Willy Tarreau (8): OPTIM: hpack-huff: reduce the cache footprint of the huffman decoder MINOR: clock: split local and global date updates MINOR: pollers: only update the local date during busy polling MINOR: clock: do not update the global date too often CLEANUP: list: fix again some style issues in the recent comments BUG/MEDIUM: config: count line arguments without dereferencing the output BUG/MAJOR: conn-idle: fix hash indexing issues on idle conns BUG/MINOR: backend: only enforce turn-around state when not redispatching wrightlaw (1): BUG/MINOR: smtpchk: SMTP Service check should gracefully close SMTP transaction ---

