Hi,
HAProxy 3.2-dev1 was released on 2024/12/11. It added 95 new commits
after version 3.2-dev0.
Two weeks after the 3.1 release, it's time to emit a first 3.2-dev. This
one is pretty normal. It contains 37 fixes, a few of which were even for
new features in that version. I would say that for now, aside the few
usual post-release issues, there was nothing particularly scary. I'm not
going to enumerate the bugs fixed, they'll be covered in the forthcoming
3.1 announce.
The most visible changes at the moment are in these areas:
- Lua: a new "patref" class opens direct access to pattern references
used by acls and maps and offers more reliable and also faster access
than by using the map/acl ones because it supports batches and avoids
individual lookups.
- CLI: "show ssl sni" lists all the loaded frontend certificates' SNI
with their file names and validity dates. That makes it convenient
to quickly see what names are handled at a given instant.
- QUIC: the system's support for optional optimizations (socket-owner,
GSO) is now reported in -vv
- Stick-tables: a new directive "recv-only" indicates that this table
will only receive entries from a peer and will not be locally updated,
and as such might accept to receive more data types. At the moment it
only makes the difference for "conn_cur", which will permit a peer to
share its current connections count in its own table, but it was
designed in a way that should make it easy to support more similar
data types in the future.
- L7 retries: retry-on now supports HTTP status 421 (misdirected request)
among the ones to decide to retry on.
- mux-h2: glitch counters now all have a description so that
"debug counters" will translate in human words what large numbers
correspond to.
The rest is mostly for developers:
- a few code cleanups here and there (shut coverity warnings about
possible null derefs which are not, reword some ambiguous h2 traces)
- CI updates (/tmp handling, core dumps)
- rename some unclear internal flags
- and doc updates
- improved the fddebug() macro for even easier printf-based debugging
So these changes are pretty timid for now, so that's a good reason to
upgrade to 3.2-dev without taking risks, and stay up to date with latest
updates and fixes. As usual, I'll tell you once it starts to become less
safe for those not accustomed to -dev.
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
Sources : https://www.haproxy.org/download/3.2/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.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 (16):
BUG/MEDIUM: quic: prevent stream freeze on pacing
BUG/MEDIUM: mux-quic: remove pacing status when everything is sent
BUG/MINOR: quic: remove startup alert if conn socket-owner unsupported
BUG/MINOR: quic: remove startup alert if GSO unsupported
MINOR: mux-quic: clean up zero-copy done_ff callback
MINOR: mux-h1: use explicit __objt_server on idle conn reinsert
MINOR: mux-h2: use explicit __objt_server on idle conn reinsert
MINOR: mux-spop: use explicit __objt_server on idle conn reinsert
MINOR: mux-fcgi: use explicit __objt_server on idle conn reinsert
MINOR: quic: convert startup check in a freestanding function
MINOR: quic: split startup check function
MINOR: quic: implement build options report
BUG/MINOR: stats: decrement srv refcount on stats-file release
MINOR: list: define a watcher type
BUG/MEDIUM: stats/server: use watcher to track server during stats dump
MINOR: server: remove prev_deleted server list
Aurelien DARRAGON (34):
MINOR: pattern: split pat_ref_set()
MINOR: pattern: add pat_ref_gen_set() function
MINOR: pattern: add pat_ref_gen_find_elt() function
MINOR: pattern: add pat_ref_gen_delete() function
MEDIUM: pattern: consider gen_id in pat_ref_set_from_node()
MEDIUM: pattern: always consider gen_id for pat_ref lookup operations
BUG/MINOR: log: fix lf_text() behavior with empty string
MINOR: log: always consider "+M" option in lf_text_len()
MINOR: event_hdl: add PAT_REF events
MINOR: pattern: publish event_hdl events on pat_ref updates
MINOR: hlua: add patref class
MINOR: hlua: add core.get_patref method
MINOR: hlua_fcn: implement index and pair metamethods for patref class
MINOR: hlua_fcn: wrap pat_ref struct for patref class
MINOR: pattern: add pat_ref_may_commit() helper function
MINOR: hlua_fcn: add Patref:commit() method
MINOR: hlua_fcn: add Patref:prepare() method
MINOR: hlua_fcn: add Patref:purge() method
MINOR: hlua_fcn: add Patref:giveup()
MINOR: hlua_fcn: add Patref:add()
MINOR: hlua_fcn: add Patref:del()
MINOR: hlua_fcn: add Patref:set()
MINOR: hlua_fcn: add Patref:add_bulk()
MINOR: hlua_fcn: add Patref:event_sub()
DOC: lua: prefer Patref:{set,add}() over legacy methods for acl and maps
BUG/MINOR: hlua_fcn: fix Patref:set() force parameter
BUG/MEDIUM: event_hdl: fix uninitialized value in async mode when no data
is provided
BUG/MINOR: listener: fix potential null pointer dereference in
listener_release()
MINOR: hlua: fix ambiguous hlua usage in hlua_filter_delete()
MINOR: stktable: implement "recv-only" table option
CLEANUP: stktable: replace nopurge attribute with flag
CLEANUP: stktable: add some stktable flags polishing
DOC: config: fix confusing init-state examples
BUG/MINOR: hlua_fcn: restore server pairs iterator pointer consistency
Christopher Faulet (7):
BUG/MEDIUM: sock: Remove FD_POLL_HUP during connect() if FD_POLL_ERR is
not set
MINOR: proxy: Add support of 421-Misdirected-Request in retry-on status
BUG/MEDIUM: http-ana: Reset request flag about data sent to perform a L7
retry
BUG/MINOR: h1-htx: Use default reason if not set when formatting the
response
BUG/MINOR: config: Fix parsing of accept-invalid-http-{request,response}
BUG/MINOR: http-fetch: Ignore empty argument string for query()
BUG/MINOR: server-state: Fix expiration date of srvrq_check tasks
Frederic Lecaille (3):
BUG/MINOR: improve BBR throughput on very fast links
BUILD: quic: fix a build error about an non initialized timestamp
BUG/MINOR: quic: fix bbr_inflight() calls with wrong gain value
Ilia Shipitsin (4):
BUG/MINOR: namespace: handle a possible strdup() failure
BUG/MINOR: ssl_crtlist: handle a possible strdup() failure
BUG/MINOR: resolvers: handle a possible strdup() failure
CI: use "/tmp" as default value for TMPDIR when searching logs
Valentine Krasnobaeva (11):
BUG/MINOR: signal: register default handler for SIGINT in signal_init()
BUG/MINOR: startup: close pidfd and free global.pidfile in
handle_pidfile()
BUG/MINOR: startup: fix pidfile creation
BUG/MINOR: mworker: don't save program PIDs in oldpids
BUG/MINOR: mworker: fix -D -W -sf/-st modes
BUG/MINOR: startup: fix error path for master, if can't open pidfile
CLEANUP: startup: make if condition to kill old pids more readable
BUG/MEDIUM: startup: don't daemonize if started with -c
BUG/MEDIUM: startup: report status if daemonized process fails
BUG/MEDIUM: mworker: report status, if daemonized master fails
BUG/MINOR: mworker: detach from tty when received READY from worker
William Lallemand (6):
CI: github: allow coredumps on aws-lc and wolfssl jobs
MINOR: ssl: add notBefore and notAfter utility functions
MEDIUM: ssl/cli: "show ssl sni" list the loaded SNI in frontends
DOC: management: fix typos and paragraph ordering in 'show ssl sni'
CLEANUP: ssl: fix comment in 'show ssl sni'
MINOR: ssl/cli: add negative filters to "show ssl sni"
Willy Tarreau (14):
MINOR: version: this is development again (3.2)
DEV: patchbot: prepare for new version 3.2-dev
MINOR: tools: add a new macro DEFVAL() to provide a default argument
MINOR: tasklet: set TASK_WOKEN_OTHER on tasklets by default
BUG/MEDIUM: init: make sure only daemonized processes change their session
BUG/MINOR: init: do not call fork_poller() for non-forked processes
BUG/MEDIUM: mux-h2: make sure not to touch dummy streams when sending WU
BUG/MINOR: debug: COUNT_IF() should return true/false
MINOR: mux-h2/traces: add a missing trace on negative initial window size
CLEANUP: mux-h2/traces: reword certain ambiguous traces
MINOR: mux-h2/glitches: add a description to the H2 glitches
BUG/MINOR: mux-h2: fix expression when detecting excess of CONTINUATION
frames
BUILD: debug: fix build issues in COUNT_IF() with -Wunused-value
MINOR: tools: make fddebug() automatically emit the location
---