Hi, HAProxy 2.7-dev10 was released on 2022/11/24. It added 53 new commits after version 2.7-dev9.
Tests were productive, we got a few last-minute bug reports that led to important fixes: - two possible crashes in QUIC were found and now confirmed to be fixed thanks to Gabriel and Tristan's tests and feedback. - the scheduler's wait queue was not being properly locked when dealing with tasks able to run on multiple thread groups (e.g. stick-table updates). - a possible crash could happen on H1 during reloads with some idle front connections, and on some complex error path conditions. - a few other regular issues that were not specific to 2.7 were addressed. Other than that, the minimal support for building with the WolfSSL library was added (mostly one extra USE_ makefile rule to specify the slightly different lib names and a few ifdefs to isolate non-implemented features). We don't consider this reasonably usable yet, and some regtests are still failing, but the main purpose is to make it much easier for the WolfSSL team to run their tests with HAProxy, instead of relying on the constantly rebased patch. Note for Ilya and Tim, I don't think it's worth thinking about adding this to the CI until we reach a situation where regtests stop failing. The "rst-ttl" argument to the "silent-drop" action is now supported, to always rely on TCP RST instead of connection repair and help also protect a part of the infrastructure. Thanks to Mathias Weiersmueller for doing this quickly and cleanly after discussing it at the HAProxyConf! Some minor debugging stuff was added (sorting + filtering in "show pools", displaying the name of failed CLI commands, and a few build fixes and cleanups with older compilers as well as minor doc updates were applied. Those closely following QUIC might have noticed that a small patch set from Amaury was under review and testing over the last few weeks, to improve CPU usage and connection reloads. However thanks to Gabriel's tests, some late glitches were found in it and we preferred not to rush quick fixes at the last minute on top of it. Better let the pressure go down for now, fix it and merge it later. I have no problem with backporting it into 2.7.1 for example after it has undergone a bit more testing in production. So far I think we're good for a release next week, unless some last-minute disaster is discovered, of course. There were some old issues suggesting to improve certain parts of the doc, I think we should find them and try to handle the relevant ones till the release. Then with a bit of hope, on Wednesday or Thursday we'll do it. I think I'm forgetting something but I'm reaching the end of this message, so if it comes back it will be in another message now :-) 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 : Abhijeet Rastogi (1): MINOR: cli: print parsed command when not found Amaury Denoyelle (5): DOC: configuration: fix quic prefix typo MINOR: quic: report error if force-retry without cluster-secret MINOR: global: generate random cluster.secret if not defined DOC: quic: add note on performance issue with listener contention BUG/MEDIUM: quic: fix datagram dropping on queueing failed Aurelien DARRAGON (7): BUG/MINOR: cfgparse-listen: fix ebpt_next_dup pointer dereference on proxy "from" inheritance BUG/MINOR: log: fix parse_log_message rfc5424 size check CLEANUP: arg: remove extra check in make_arg_list arg escaping CLEANUP: tools: extra check in utoa_pad DOC: configuration.txt: add default_value for table_idle signature DOC: configuration.txt: fix typo in table_idle signature MINOR: auth: silence null dereference warning in check_user() Christopher Faulet (14): MINOR: h1: Consider empty port as invalid in authority for CONNECT MINOR: http: Considere empty ports as valid default ports BUG/MINOR: http-htx: Normalized absolute URIs with an empty port BUG/MINOR: h1: Replace authority validation to conform RFC3986 REG-TESTS: http: Add more tests about authority/host matching BUG/MINOR: http-htx: Don't consider an URI as normalized after a set-uri action BUG/MEDIUM: mux-h1: Don't release H1C on timeout if there is a SC attached BUG/MEDIUM: mux-h1: Subscribe for reads on error on sending path BUILD: http-htx: Silent build error about a possible NULL start-line BUILD: ssl-sock: Silent error about NULL deref in ssl_sock_bind_verifycbk() BUG/MEDIUM: mux-h1: Remove H1C_F_WAIT_NEXT_REQ flag on a next request BUG/MINOR: mux-h1: Fix handling of 408-Request-Time-Out MINOR: mux-h1: Remove H1C_F_WAIT_NEXT_REQ in functions handling errors MINOR: mux-h1: Avoid useless call to h1_send() if no error is sent Frédéric Lécaille (2): BUG/MAJOR: quic: Crash upon retransmission of dgrams with several packets BUG/MAJOR: quic: Crash after discarding packet number spaces Ilya Shipitsin (1): CLEANUP: quic: replace "choosen" with "chosen" all over the code Mathias Weiersmueller (1): MEDIUM: tcp-act: add parameter rst-ttl to silent-drop Uriah Pollock (2): BUILD: quic: use openssl-compat.h instead of openssl/ssl.h MEDIUM: ssl: add minimal WolfSSL support with OpenSSL compatibility mode Willy Tarreau (20): MINOR: cli/pools: store "show pools" results into a temporary array MINOR: cli/pools: add sorting capabilities to "show pools" MINOR: cli/pools: add pool name filtering capability to "show pools" BUG/MINOR: resolvers: do not run the timeout task when there's no resolution BUG/MINOR: server/idle: at least use atomic stores when updating max_used_conns MINOR: server/idle: make the next_takeover index per-tgroup BUILD: listener: fix build warning on global_listener_rwlock without threads BUG/MAJOR: sched: protect task during removal from wait queue BUILD: sched: fix build with DEBUG_THREAD with the previous commit BUILD: stick-tables: fix build breakage in xxhash on older compilers BUILD: compiler: include compiler's definitions before ours BUILD: quic: global.h is needed in cfgparse-quic CLEANUP: tools: do not needlessly include xxhash nor cli from tools.h BUILD: flags: really restrict the cases where flags are exposed BUILD: makefile: minor reordering of objects by build time BUILD: quic: silence two invalid build warnings at -O1 with gcc-6.5 MINOR: sample: make the rand() sample fetch function use the statistical_prng CLEANUP: peers: fix format string for status messages (int signedness) CLEANUP: qpack: fix format string in debugging code (int signedness) CLEANUP: qpack: properly use the QPACK macros not HPACK ones in debug code ---