Hi,

HAProxy 3.2.8 was released on 2025/11/07. It added 24 new commits
after version 3.2.7.

No serious bug were fixed in this version, but a bunch of annoying ones,
which made it worth producing a new release.

Overall, we have this:
  - a fix for applets (e.g. CLI) that could trigger the spinning loop
    detection when doing lots of round-trips, for example when uploading
    a large map one command at a time at a high speed. This fix also has
    the benefit of no longer causing single LF characters to be emitted
    for batched updates, so that socat's CPU usage drops from 100% to 0,
    i.e. it's no longer the bottleneck.

  - a case of rare crashes was addressed when idle connections are purged,
    woken up and reused at the same time. Most users will never notice it,
    we triggered it around 500k req/s on 128 threads...

  - internal fixes for MT lists that could permit the compiler to do some
    updates in a bad order, causing deadlocks. It was only met in stress-
    testing.

  - the condition that decides whether to produce HTTP status 414 or 431
    was incorrect and would only produce 414 (URI too long).

  - occasionally when deleting a server, if a last request had arrived on
    the server at the moment it was about to be deleted, a pointer to the
    server ("ready_srv") could stay in the proxy and cause crashes when
    idle connections would try to pick that one.

  - updating a CA from the CLI could occasionally cause a crash due to
    objects being still referenced.

  - the dns-01 challenge emitted in the log could contain garbage from
    the trash buffer.

  - the dns-accept-family setting was only evaluated when resolving A/AAAA
    records, but was ignored for SRV responses.

  - the DNS round robin was not very fair when CNAME were used since queries
    were being accounted for. this has been refined.

  - on some rare occasions, stick-table keys of type strings could
    sometimes be incorrectly indexed with some extra bytes past the final
    zero and appear as duplicates, causing entries to get mixed. This is
    one of the longest living bugs we've had, it's been there since the
    feature was implemented in 1.4-dev7 almost 16 years ago!

  - default HTTP 405, 431 and 501 error files had an incorrect content
    length that would probably cause the front connections to be closed
    after the response.

A few additions were also made, such as the srv_is_up() converter, which
takes a server name on input and returns true if it's up, and
ssl_fc_early_rcvd() which indicates if some early data were received on
a connection (and not just if the connection only had early data). The
rest is small doc updates and minor changes.

I'd say that if your version is working well for you, there's no rush to
update. In addition, Olivier and Christopher just found the likely cause of
some occasional peers desynchronization, so depending on the forthcoming
tests and demands, we may possibly emit a new one with this fixed soon,
since it looks like one of the last few known pending bugs affecting 3.2.

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 (1):
      OPTIM: backend: skip conn reuse for incompatible proxies

Chris Staite (2):
      MINOR: backend: srv_queue helper
      MINOR: backend: srv_is_up converter

Christopher Faulet (2):
      BUG/MEDIUM: applet: Improve again spinning loops detection with the new 
API
      BUG/MINOR: resolvers: Apply dns-accept-family setting on additional 
records

Damien Claisse (1):
      BUG/MINOR: resolvers: ensure fair round robin iteration

Huangbin Zhan (1):
      MINOR: http: fix 405,431,501 default errorfile

Maximilian Moehl (1):
      BUG/MEDIUM: mux-h1: fix 414 / 431 status code reporting

Olivier Houchard (2):
      BUG/MEDIUM: mt_lists: Avoid el->prev = el->next = el
      BUG/MEDIUM: mt_list: Use atomic operations to prevent compiler optims

Remi Tricot-Le Breton (2):
      BUG/MEDIUM: ssl: Crash because of dangling ckch_store reference in a ckch 
instance
      BUG/MINOR: init: Do not close previously created fd in stdio_quiet

William Lallemand (3):
      BUG/MINOR: ssl: returns when SSL_CTX_new failed during init
      SCRIPTS: build-ssl: fix rpath in AWS-LC install for openssl and bssl bin
      BUG/MINOR: acme: wrong dns-01 challenge in the log

Willy Tarreau (9):
      BUG/MINOR: stick-tables: properly index string-type keys
      MINOR: applet: do not put SE_FL_WANT_ROOM on rcv_buf() if the channel is 
empty
      MINOR: cli: create cli_raw_rcv_buf() from the generic applet_raw_rcv_buf()
      BUG/MEDIUM: cli: do not return ACKs one char at a time
      DOC: config: slightly clarify the ssl_fc_has_early() behavior
      MINOR: ssl-sample: add ssl_fc_early_rcvd() to detect use of early data
      BUG/MEDIUM: mux-h2: make sure not to move a dead connection to idle
      BUG/MEDIUM: connections: permit to permanently remove an idle conn
      BUG/MEDIUM: server: close a race around ready_srv when deleting a server

---


Reply via email to