Hi, HAProxy 2.5.13 was released on 2023/03/17. It added 60 new commits after version 2.5.12.
Please note that 2.5 is getting very close to end of life, which was planned for Q1. In fact the only reason why it's not marked "EOL" in the output of "haproxy -v" is because I forgot to do it when releasing, but in my mind it's dead already. Thus it's likely to be the last 2.5, but as usual I'm not opposed to emitting another one if something is really bad. Just keep in mind that if you're on 2.5, by now you should already have moved to 2.6 which is more stable, more observable and maintained for 4 more years. In the unlikely event you'd face a problem migrating to 2.6, just use 2.5.12 for the time it takes for your issue to be fixed. I'm just summarizing the changelog here, because this version is the 2.5 branch equivalent of 2.6.10 + 2.6.11, so it addresses the file- descriptor race that was recently fixed in other branches, the various listener fixes, the recent idle connection fixes, as well as the fixes for the mworker mode when migrating from older versions. 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/2.5/src/ Git repository : https://git.haproxy.org/git/haproxy-2.5.git/ Git Web browsing : https://git.haproxy.org/?p=haproxy-2.5.git Changelog : https://www.haproxy.org/download/2.5/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 : Aurelien DARRAGON (7): DEV: hpack: fix `trash` build regression BUG/MINOR: lua/httpclient: missing free in hlua_httpclient_send() BUG/MEDIUM: httpclient/lua: fix a race between lua GC and hlua_ctx_destroy BUG/MINOR: tcp_sample: fix a bug in fc_dst_port and fc_dst_is_local sample fetches BUG/MINOR: proto_ux: report correct error when bind_listener fails BUG/MINOR: protocol: fix minor memory leak in protocol_bind_all() BUG/MINOR: sock_unix: match finalname with tempname in sock_unix_addrcmp() Christopher Faulet (16): BUG/MEDIUM: stconn: Don't rearm the read expiration date if EOI was reached REGTESTS: Fix ssl_errors.vtc script to wait for connections close BUG/MEDIUM: h1-htx: Never copy more than the max data allowed during parsing DOC: config: Fix description of options about HTTP connection modes DOC: config: Add the missing tune.fail-alloc option from global listing DOC: config: Clarify the meaning of 'hold' in the 'resolvers' section BUG/MINOR: http-check: Don't set HTX_SL_F_BODYLESS flag with a log-format body BUG/MINOR: http-check: Skip C-L header for empty body when it's not mandatory BUG/MINOR: http-ana: Do a L7 retry on read error if there is no response BUG/MEDIUM: proxy: properly stop backends on soft-stop BUG/MEDIUM: spoe: Don't set the default traget for the SPOE agent frontend BUG/MEDIUM: connection: Clear flags when a conn is removed from an idle list BUG/MEDIUM: connection: Preserve flags when a conn is removed from an idle list BUG/MINOR: fd: Properly init the fd state in fd_insert() DEBUG: cli/show_fd: Display connection error code DEBUG: ssl-sock/show_fd: Display SSL error code Frédéric Lécaille (1): BUILD: thead: Fix several 32 bits compilation issues with uint64_t variables Michael Prokop (1): DOC/CLEANUP: fix typos Remi Tricot-Le Breton (3): BUG/MINOR: cache: Cache response even if request has "no-cache" directive BUG/MINOR: cache: Check cache entry is complete in case of Vary BUG/MINOR: ssl: Use 'date' instead of 'now' in ocsp stapling callback William Lallemand (6): BUG/MINOR: mworker: stop doing strtok directly from the env BUG/MEDIUM: mworker: prevent inconsistent reload when upgrading from old versions BUG/MEDIUM: mworker: don't register mworker_accept_wrapper() when master FD is wrong MINOR: startup: HAPROXY_STARTUP_VERSION contains the version used to start BUG/MINOR: mworker: prevent incorrect values in uptime BUG/MINOR: mworker: use MASTER_MAXCONN as default maxconn value Willy Tarreau (26): BUG/MINOR: sched: properly report long_rq when tasks remain in the queue BUG/MEDIUM: sched: allow a bit more TASK_HEAVY to be processed when needed BUG/MINOR: ring: do not realign ring contents on resize BUG/MINOR: init: properly detect NUMA bindings on large systems BUG/MEDIUM: master: force the thread count earlier BUG/MINOR: init: make sure to always limit the total number of threads BUG/MINOR: mux-h2: make sure the h2c task exists before refreshing it BUG/MEDIUM: listener: duplicate inherited FDs if needed MEDIUM: epoll: don't synchronously delete migrated FDs MEDIUM: poller: program the update in fd_update_events() for a migrated FD MAJOR: fd: remove pending updates upon real close MINOR: fd: delete unused updates on close() MEDIUM: fd: add the tgid to the fd and pass it to fd_insert() MINOR: fd/cli: report the polling mask in "show fd" MINOR: cli/fd: show fd's tgid and refcount in "show fd" MINOR: fd: add functions to manipulate the FD's tgid MINOR: fd: add fd_get_running() to atomically return the running mask MAJOR: fd: grab the tgid before manipulating running MINOR: fd: make fd_clr_running() return the previous value instead MEDIUM: fd: make fd_insert/fd_delete atomically update fd.tgid MEDIUM: fd: quit fd_update_events() when FD is closed MAJOR: poller: only touch/inspect the update_mask under tgid protection MEDIUM: fd: support broadcasting updates for foreign groups in updt_fd_polling BUG/MAJOR: fd/thread: fix race between updates and closing FD BUG/MAJOR: fd/threads: close a race on closing connections after takeover BUG/MAJOR: qpack: fix possible read out of bounds in static table ---