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

---


Reply via email to