Hi,

HAProxy 3.2.10 was released on 2025/12/18. It added 34 new commits
after version 3.2.9.

The 3.2.10 is quite light. However, as usual, it fixed some issues:

- In QUIC, collisions on CID generation were fixed to unsure a generated CID
  is not a duplicate value. Otherwise, at best, client packets would be
  rejected by haproxy, most probably with a STATELESS_RESET. At worst,
  crashes might be experienced. This is issue is pretty rare, but it can
  only be observed if running with a high number of concurrent connections
  in parallel. In addition, HyStart++ algorithm for QUIC connections is now
  disabled for congestion control algorithms not supporting it. It caused
  crashes when when it was enabled with BBR for instance.

- A fix for applets that could trigger the spinning loop detection because
  of a mixup between read/send events and ability for an applet to receive
  and send.

- A regression on the CLI about its new yield state, introduced in 3.2.8,
  was fixed. This new state was added to be able to send small response by
  batches to save CPU.

- In master-worker mode, an ambiguity about a flag was fixed. It has no
  impact on 3.1 and upper thanks to the master-worker refactoring that has
  occurred in 3.1 but that led to a file descriptor leak for duplicated unix
  stats sockets in the master process in 3.0 and lower.

- A typo in the "bc_settings_streams_limit" sample fetch function made it
  unavailable. This was fixed to accordingly to the name used in the
  configuration manual.

- An old bug form 2012 was fixed about the HTTP TUNNEL handling that causing
  tunnelled streams closed by the server to be closed on both sides at once
  and logging an error. And the timer used for "wait-for-body" action was
  not properly reset, causing some trouble with some following actions, like
  "pause".

- The reuse of idle connections for health-checks, via "check-reuse-pool"
  keyword, is now restricted to HTTP health-checks. Indeed, reusing a
  connection outside of HTTP is an undefined behavior. The impact of this
  bug is unknown and depends on the proxy/server configuration. In the case
  of an HTTP backend with non-HTTP checks, check-reuse-pool would probably
  cause a drop in reuse rate.

- The "wait-for-body" action was fixed to properly reset the timer used by
  the action. It could be an issue for some following actions, like "pause",
  that also rely on the same timer.

- In HTX, the end-of-message marker, set via HTX_FL_EOM flag, is no longer
  set for 1xx informational messages. It was not expected to have this maker
  at this stage. It is espacially important whne an informational messages
  is processed on client side while the final response was not recieved yet,
  to not erroneously detect the end of the message.

- The H2 multiplexer was fixed to be able to send the preface with the first
  request if possible. It was mandatory to be able to send as much data as
  possible via 0-RTT. The H1 multiplexer was also fixed but on client side,
  to immediately try to read data when it is initialized, instead of waiting
  for a receive event. The purpose of the fix was to be able to receive
  0-RTT data.

- ACME part received some minor fixes.

The rest is pretty minor, essentially doc updates.

Finally the issue affecting the idle connections was not fixed in this
release. The impacts for the 3.2 are pretty limited and most probably
unnoticeable. However, the 3.3 was fixed, mainly to have some feedback on
the fix. A 3.3.1 should be emitted soon.

Thanks everyone for your help.

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


---
Complete changelog :
Amaury Denoyelle (5):
      MINOR: cfgdiag: adjust diag on servers
      BUG/MINOR: check: only try connection reuse for http-check rulesets
      MINOR: quic: adjust CID conn tree alloc in qc_new_conn()
      MINOR: quic: split CID alloc/generation function
      BUG/MEDIUM: quic: handle collision on CID generation

Aurelien DARRAGON (2):
      MINOR: hlua: emit a log instead of an alert for aborted actions due to 
unavailable yield
      BUG/MINOR: cfgparse-listen: update err_code for fatal error on proxy 
directive

Christopher Faulet (8):
      BUG/MEDIUM: h1-htx: Don't set HTX_FL_EOM flag on 1xx informational 
messages
      BUG/MINOR: http-ana: Reset analyse_exp date after 'wait-for-body' action
      BUG/MEDIUM: applet: Fix conditions to detect spinning loop with the new 
API
      BUG/MEDIUM: cli: State the cli have no more data to deliver if it yields
      BUG/MINOR: ssl: Don't allow to set NULL sni
      BUG/MEDIUM: http-ana: Don't close server connection on read0 in TUNNEL 
mode
      DOC: config: Fix description of the spop mode
      DOC: config: Improve spop mode documentation

Frederic Lecaille (3):
      BUG/MINOR: quic/ssl: crash in ClientHello callback ssl traces
      MINOR: quic: Add useful debugging traces in qc_idle_timer_do_rearm()
      BUG/MEDIUM: quic: support some ciphersuites and curves related options

Maxime Henrion (1):
      BUG/MINOR: acme: fix ha_alert() call

Olivier Houchard (2):
      MEDIUM: h1: Immediately try to read data for frontend
      BUG/MEDIUM: quic: Don't try to use hystart if not implemented

Remi Tricot-Le Breton (1):
      BUG/MINOR: jwt: Missing "case" in switch statement

William Lallemand (5):
      BUG/MEDIUM: mworker/listener: ambiguous use of RX_F_INHERITED with shards
      BUG/MINOR: acme: handle multiple auth with the same name
      BUG/MINOR: acme: prevent creating map entries with dns-01
      BUG/MINOR: acme: better challenge_ready processing
      BUG/MINOR: acme: warning ‘ctx’ may be used uninitialized

Willy Tarreau (7):
      BUG/MEDIUM: connection: fix "bc_settings_streams_limit" typo
      DOC: config: mention clearer that the cache's total-max-size is mandatory
      DOC: config: reorder the cache section's keywords
      MINOR: h2/trace: emit a trace of the received RST_STREAM type
      MEDIUM: mux-h2: do not needlessly refrain from sending data early
      MINOR: mux-h2: extract the code to send preface+settings into its own 
function
      BUG/MINOR: mux-h2: send the preface along with the first request if needed

--
Christopher Faulet



Reply via email to