Hi,

HAProxy 3.4-dev12 was released on 2026/05/13. It added 62 new commits
after version 3.4-dev11.

We're doing much better now. Only 19 bugs fixed, 2/3 of which were found
via code reviews (i.e. low importance and not having caused a report), and
about 20 cleanup patches addressing spelling mistakes and harmless typos.

The rest is pretty much isolated:

- a patchset used to rename internals of the QUIC mux from "qmux" to
  "qcm", because "qmux" is a protocol that we support, and that is getting
  seriously confusing in the code. Thus better rename files and functions
  now than suffer during backports from 3.5 to 3.4. The "qmux" trace
  source was also renamed to "qcm" though "qmux" is still silently
  supported in 3.4.

- the CLI's "show fd" command starts to anticipate a future support for
  "show fd <tgid>/fd" that will be needed in 3.5, so that debugging and
  monitoring scripts developed during 3.5-dev remain compatible with 3.4
  in order to help those running -dev.

- the cleanup work on LB algo declaration and initialization continued a
  little bit; the properties and masks are now also in the declared
  arrays.

- two new converters, "reverse" and "reverse_dom", used respectively to
  reverse a string and to reverse a domain name. These can be conveniently
  combined with map_beg() to perform longest match from the end of a host
  name and detect that foo.example.com has its own entry or falls under
  "example.com". The doc has some concrete usage examples.

- the global concurrent streams limitation is now possible for H2 (QUIC is
  coming next). The goal is to specify a ratio of streams-to-connections
  to respect when running under saturation (maxconn), and to be able to
  allocate all unused streams to existing connections at lower loads. This
  is in order to limit the variation between number of streams and
  connections during incidents (servers slowing down) or even attacks
  without having to artificially limit the number of streams per
  connection. See tune.streams-elasticity in the doc for more details.

- and as usual, a few doc and regtest updates.

I still have in my todo list to check what it would imply to add a few
USE_xxx build options allowing to disable certain subsystems that small
deployment are not necessarily interested in (e.g. a small home router
might not always need H2, FCGI, SPOE etc yet these ones are pretty big).
If it goes smoothly we could add more modularity here, otherwise it will
be postponed (or even dropped if it brings too little savings).

There are still a few cleanups to come, but please really try it, if
everything goes well, there's only one -dev left next week and after that
it's the release.

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.4/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/3.4/src/CHANGELOG
   Dataplane API    : 
https://github.com/haproxytech/dataplaneapi/releases/latest
   OpenTelemetry    : https://github.com/haproxytech/haproxy-opentelemetry
   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 (11):
      BUG/MINOR: xprt_qstrm: fix conflicting prototype
      REORG: mux_quic: use newer qcm prefix for legacy qmux files
      MINOR: mux_quic: use qcm prefix for mux callbacks
      MINOR: mux_quic: use qcm prefix for mux functions
      MINOR: mux_quic: use qcm prefix for traces functions/structs
      MINOR: mux_quic: rename qstrm files to qmux
      MINOR: mux_quic: remove qstrm naming in QUIC MUX
      MINOR: connection: rename QMux related flags
      MINOR: xprt_qmux: use qmux instead of qstrm naming
      MINOR: trace: implement source alias
      MEDIUM: mux_quic: rename qmux traces to qcm

Christian Ruppert (2):
      REGTESTS: Use ${tmpdir} instead of hardcoded /tmp/
      REGTESTS: Don't try to use real nameservers for testcases

Christopher Faulet (1):
      BUG/MEDIUM: http-client: Only consume input buffer when hc one is empty

Egor Shestakov (3):
      CLEANUP: defaults: adjust MAX_THREADS multiplier number in comment
      CLEANUP: tree-wide: fix typos in user-invisible files
      CLEANUP: htx: Adjust numbering of HTX blocks' types in the description

Ilia Shipitsin (2):
      CLEANUP: src/cpuset.c: fix missing return in functions returning int
      BUILD: 51d.c: cleanup, fix preprocessor ifdefs

Kevin Ludwig (1):
      DOC: proxy-protocol: clarify UDP usage

Manu Nicolas (2):
      MINOR: sample: add a generic reverse converter
      MINOR: sample: add a reverse_dom converter

Maxime Henrion (3):
      MINOR: lb: make LB initialization even more declarative
      MINOR: cli: improve forward compatibility for show fd
      DOC: management: document the <tgid>/<fd> form of show fd

Olivier Houchard (2):
      BUG/MEDIUM: servers: Only requeue servers if they are up
      BUG/MEDIUM: tasks: Keep the TASK_RUNNING flag until queued

Willy Tarreau (35):
      SCRIPTS: announce-release: add a link to the OpenTelemetry filter
      MINOR: tinfo: store the number of committed extra streams in the tgroup
      MINOR: connection: add a function to calculate elastic streams limit
      MINOR: mux-h2: consider the elastic streams limit on frontend
      BUG/MINOR: cfgparse-listen: do not emit extraneous line in rule order 
warnings
      CLEANUP: tree-wide: fix typos in non user-visible comments in 15 files
      CLEANUP: h1/htx: fix a few typos in warning, debug and trace messages
      BUG/MINOR: mux-h1: only check h1s if not NULL
      BUG/MINOR: http-fetch: fix smp_fetch_hdr_ip()'s handling of brackets for 
IPv6
      BUG/MINOR: http-fetch: make http_first_req() check for HTTP first
      BUG/MINOR: http-act: set-status() must check the response message, not 
the request
      BUG/MINOR: tools: fix memory leak in env_expand() error path
      BUG/MINOR: auth: free user groups on error paths in userlist_postinit()
      BUG/MINOR: uri-auth: avoid leaks on initialization error
      BUG/MINOR: cache: fix memory leak in parse_cache_rule error path
      BUG/MINOR: cfgcond: make KQUEUE check for GTUNE_USE_KQUEUE not 
GTUNE_USE_EPOLL
      BUG/MINOR: mqtt: connack parser returns MQTT_NEED_MORE_DATA on unknown 
property
      BUG/MINOR: mqtt: connect parser uses wrong bit field for 
TOPIC_ALIAS_MAXIMUM
      BUG/MINOR: mqtt: connack parser uses wrong bit for 
SUBSCRIPTION_IDENTIFIERS_AVAILABLE
      BUG/MINOR: mqtt: fix PUBLISH flags validation that want all bits to be set
      CLEANUP: http_htx: rename inner 'type' to 'ptype' to avoid variable 
shadowing
      CLEANUP: mux-h2: fix minor output debugging format issues
      CLEANUP: http-rules: fix a few '&' vs '&&' checks for clarity
      CLEANUP: auth: remove undeclared auth_resolve_groups() from auth.h
      CLEANUP: cache: remove redundant res_htx assignment in 
http_cache_io_handler()
      CLEANUP: channel: remove bogus and unused definition of channel_empty()
      CLEANUP: flt_http_comp: remove duplicate rate limit and CPU usage checks
      CLEANUP: mqtt: remove duplicate MQTT_FN_BIT_USER_PROPERTY in CONNECT 
fields
      BUG/MINOR: uri-auth: fix possible null-deref in latest fix for leaks
      CLEANUP: mqtt: fix spelling of shared_subscription_available
      CLEANUP: regex: pre-initialize error variable in regex_comp() to calm 
analysis
      BUILD: compiler: fix redefinition of __nonstring
      CLEANUP: tree-wide: fix typos in non user-visible comments in 3 more files
      CLEANUP: tree-wide: fix more typos and outdated explanations in comments
      BUG/MEDIUM: dict: hold read lock while incrementing refcount in 
dict_insert

---


Reply via email to