Hi, HAProxy 3.2.2 was released on 2025/07/02. It added 26 new commits after version 3.2.1.
Finally we've seen two other reports for the leastconn issue so it seems less rare than what I wrongly assumed, so better emit a new 3.2 right now to avoid more problems as users start to adopt it. Among the other relevant issues solved in this version: - BUG/MEDIUM: check: Set SOCKERR by default when a connection error is reported => possibly no effect - a risk of wakeup loops on CLI commands with output full was addressed. It could consume lots of CPU while waiting, possibly leading to a crash (though not reported since 3.0 where the issue appeared). - L6/L7 sample fetch functions cannot be used in Lua services since they don't have access to the channel, yet L6 was not rejected, possibly wasting time when users would try to implement them and figure why they don't work. - H2 on backend side could mishandle a connection error before the preface and cause a wakeup loop while data from other streams were waiting to be evacuated to the client. It caused a loop and a crash reported for the first time in issue #3020 though it's been there since backend H2 is supported. - using a QUIC address format on a server line is inappropriate and should be rejected (and now is). I have no idea what it would do till now, probably just fail to connect or blindly use TCP, none of which are acceptable nor future-proof anyway. - the "keep-query" redirect option would cause an error in case of absence of query string instead of ignoring it. - the way buffers were used in the jwt_verify() converter could sometimes result in the input data to be overwritten before being processed. - the %ID log alias is not suitable for use in unique-id-format construction, where it would cause an infinite recursive loop during evaluation. Now it will detect the situation and evaluate to empty in this case. In addition, the evaluation of the ID is now made closer to where it's evaluated so as to avoid inconsistencies (e.g. unique-id-format referencing elements not available at log production time). - BUG/MINOR: mux-quic/h3: properly handle too low peer fctl initial stream => no impact, mostly backend - an obscure issue affecting the OpenSSL-3.5 QUIC handshake was fixed - an erroneous encoding of QUIC frame type CONNECTION_CLOSE resulted in CONNECTION_CLOSE_APP instead to be emitted. The impact is unclear to me though :-) - the config parser hints regarding empty args were incorrect since latest fixes and would report arg #1 with an incorrect position. This was now fixed. Note: I'm aware of yet another case where empty args are not properly handled, I'll work on this soon. - the use of unsetenv() to clear the environment when re-execing is not reliable due to "environ" being suject to change on some OS in this case (e.g. illumos). This was fixed by using our dedicated function. - the rest is essentially doc clarifications about crt-list, prefer-ciphers or jwt_verify. Except for the leastconn issue, all of these were already present before 3.2, so if you upgraded and are using leastconn, you should definitely update again to avoid a possible crash. For the rest, there's less emergency if till now it has been working fine, but as I often say, updating when there's no pending issue is also the right approach to avoid trouble later ;-) 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 Q&A from devs : https://github.com/orgs/haproxy/discussions Sources : https://www.haproxy.org/download/3.2/src/ Git repository : https://git.haproxy.org/git/haproxy-3.2.git/ Git Web browsing : https://git.haproxy.org/?p=haproxy-3.2.git Changelog : https://www.haproxy.org/download/3.2/src/CHANGELOG Dataplane API : https://github.com/haproxytech/dataplaneapi/releases/latest 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 (2): BUG/MINOR: config/server: reject QUIC addresses BUG/MINOR: mux-quic/h3: properly handle too low peer fctl initial stream Christopher Faulet (8): BUG/MINOR: http-ana: Properly handle keep-query redirect option if no QS BUG/MEDIUM: cli: Don't consume data if outbuf is full or not available MINOR: cli: handle EOS/ERROR first BUG/MEDIUM: check: Set SOCKERR by default when a connection error is reported BUG/MINOR: stream: Avoid recursive evaluation for unique-id based on itself BUG/MINOR: log: Be able to use %ID alias at anytime of the stream's evaluation BUG/MEDIUM: hlua: Forbid any L6/L7 sample fetche functions from lua services BUG/MEDIUM: mux-h2: Properly handle connection error during preface sending Frederic Lecaille (3): BUG/MINOR: quic: Fix OSSL_FUNC_SSL_QUIC_TLS_got_transport_params_fn callback (OpenSSL3.5) BUG/MINOR: quic: wrong QUIC_FT_CONNECTION_CLOSE(0x1c) frame encoding MINOR: quic: Useless TX buffer size reduction in closing state Maximilian Moehl (1): DOC: config: crt-list clarify default cert + cert-bundle Olivier Houchard (2): BUG/MAJOR: fwlc: Count an avoided server as unusable. MINOR: fwlc: Factorize code. Remi Tricot-Le Breton (2): BUG/MINOR: jwt: Copy input and parameters in dedicated buffers in jwt_verify converter DOC: Fix 'jwt_verify' converter doc Valentine Krasnobaeva (2): DOC: config: prefer-last-server: add notes for non-deterministic algorithms BUG/MINOR: tools: use my_unsetenv instead of unsetenv William Lallemand (3): DOC: configuration: add details on prefer-client-ciphers MINOR: ssl: check TLS1.3 ciphersuites again in clienthello with recent AWS-LC BUG/MINOR: httpclient: wrongly named httpproxy flag Willy Tarreau (3): BUG/MINOR: tools: only reset argument start upon new argument SCRIPTS: drop the HTML generation from announce-release BUILD: dev/phash: remove the accidentally committed a.out file ---