On Sat, Oct 31, 2026 at 03:30:34AM +0100, Willy Tarreau wrote:
> On Wed, Oct 28, 2026 at 05:42:20PM +0100, Willy Tarreau wrote:
> > Hi,
> > 
> > HAProxy 3.5-dev10 was released on 2026/10/28. It added 194 new commits
> > after version 3.5-dev9.
> > 
> > Well, among those, 129 were bug fixes for diverse severity levels. We're
> > still in the process of reviewing a batch of analysis reports in which
> > around 350 issues are still to be evaluated (mostly of low severity but
> > these are the ones taking most time to analyze since reports can be very
> > subjective). A big thank to those doing the triage and analysis work as I
> > know how painful and boring it is, but what pays off is that at some
> > point we should see the number of issue reports go down.
> > 
> > Now for the interesting stuff:
> > 
> > - filters: permit legacy filters to register at the right place as well.
> >   This means that those with old out-of-tree filters will still see their
> >   code continue to work for a while and the filter registered at the right
> >   place. That's not a reason for not updating them. And as a reminder, a
> >   warning will now be emitted if unused/ignored legacy filters are found
> >   in a proxy. Other small improvements were made.
> > 
> > - the list of HTTP violations that can be accepted by the
> >   "accept-unsafe-violations-in-http-request/response" proxy options was
> >   becoming too wide, because if you really needed to make an exception
> >   for a bogus application, you had to enable all of them at once, and
> >   this was scaring us away from adding new exceptions. Now these ones
> >   have been split into individual options that can be enabled or disabled
> >   in the global section using the new "acceptable-http-request-violations"
> >   and "acceptable-http-response-violations", which enumerate exactly which
> >   exceptions are accepted when required. This allows to only enable the
> >   missing one, or possibly even to set a few for a whole config without
> >   taking risks. A dozen of exceptions were enumerated, individually
> >   acceptable or not. A new one was added, disabled by default, which is
> >   "short-status-code", which allows to process status codes shorter than
> >   3 digits, which are now forbidden by default. I think we'll backport
> >   it at least to 3.4 after 3.5 is released.
> > 
> > - QUIC: the AEAD confidentiality limit was implemented. It's a spec
> >   requirement that mandates changing keys from time to time after a
> >   number of packets used it, in order to keep data and keys protected.
> >   Another improvement consisting in using native HKDF APIs brought nice
> >   performance improvement during handshakes (+11% OpenSSL 3.5.4, +4%
> >   AWS-LC 5.9.0).
> > 
> > - compression/decompression: libslz was updated to 1.4-dev3, bringing
> >   nice performance improvements (1.4 to 20x compression, 2 to 3x on
> >   decompression) and compression ratios at the same time. Thus basically
> >   we can now afford to decompress/recompress for the previous cost of
> >   only a decompression. Another update might happen before the release
> >   (consider content-type in order to tune the compression algos).
> > 
> > - SSL: servers now have a new "pha" directive to enable post-handshake
> >   authentication with a server when a certificate is present. It does
> >   not work with AWS-LC which doesn't support PHA. WolfSSL only supports
> >   it when explicitly built with the proper define.
> > 
> > - threads: the per-thread-group FD table allocation is now NUMA aware.
> >   This should improve performance on multi-socket systems (even though
> >   these ones usually sufferr from other problems, starting with NIC
> >   locality).
> > 
> > Then as usual more reg tests, CI and doc.
> > 
> > We're reaching the end of the month, and as usual we're heading towards
> > the feature-freeze. As you know by now, that doesn't mean we not longer
> > merge anything, just that the sensitivity of what is merged has to be
> > seriously questioned, so as not to waste too much developer time that is
> > needed for continuing to fix reported bugs. We'll also switch to a
> > weekly release schedule again until the release hopefully between the
> > last week of November and the first of December.
> > 
> > I'm aware of a few things that are still coming before the release:
> > - the revamped cache: some of you dealing with high loads know that
> >   the current design doesn't scale well with threads and that it's
> >   not uncommon to face watchdog warnings when running on 64 cores and
> >   playing with Vary. A new version had been worked on here and ought
> >   to have been merged earlier, but during latest stress tests, we
> >   spotted a few bugs that are better fixed. It's a matter of days so
> >   we'll have it in dev11.
> > 
> > - HTTP hardening: in addition to the acceptable-violations stuff comes
> >   the need to reject certain things that are not strictly forbidden but
> >   which everyone knows are not acceptable, particularly from the public
> >   internet. That's what I regroup under the term "hardening". The goal
> >   is to have a set of options working like the http-violations, and to
> >   group them by profile so that public binds can use a stricter profile
> >   than private ones. I'm having a working PoC that now proves the model
> >   scales, it only applies it to H1 now and I just need to port it to H2
> >   and H3 so I prefer finish it before releasing it so as not to confuse
> >   users with a doc that speaks about stuff that's only for H1. My goal
> >   is not to add everything early, just to have the building blocks so we
> >   can later refine this.
> > 
> > - a few commands on the CLI (wait, show events) should support an
> >   uninterruptible mode to ease writing of scripts: right now they
> >   immediately terminate if stdin is closed as happens when echoing a
> >   command via socat. We know how to proceed, it was just low on the
> >   priority list.
> > 
> > - some converters to replace/count characters/words a-la "tr"/"grep"
> >   are also in a branch in a horrible but working state, they need a
> >   bit of polishing.
> > 
> > - we'd like to implement a form of keep-alive protocol on top of socket
> >   pairs so that it's possible for a master to detect an unresponsive
> >   worker (rare but bugs happen).
> > 
> > - I remember about one report of a confusing message for the automatic
> >   chroot, that requires to better handle the situation. Need to recheck,
> >   as I don't remember the details.
> > 
> > There are probably a few more that I don't have immediately in mind.
> > 
> > Anyway, if you want a great, nice and beautiful 3.5, now's really time
> > to deploy 3.5-dev10 and test it!
> 
> By the way (some might have noticed), we've got a second crash on
> haproxy.org with the latest -dev version. The first one was on dev9,
> the second on dev10, both in the compression code. So please be careful
> about that. We'll try to figure the root cause and fix it early next
> week. Those who don't use compression can deploy, those with compression
> might better wait for a fix (or disable compression). And those who
> already deployed might want to keep an eye on it ;-)

So I was wrong on that, both were on dev10, and it looks like I haven't
updated the buffer full detection code to plan for slz's worst-case
overhead in case of incompressible data. Working on it now.

Willy


Reply via email to