Hi,

HAProxy 2.4-dev13 was released on 2021/03/19. It added 40 new commits
after version 2.4-dev12.

The number of bug fixes is shrinking (only 6 this week), this is a good
sign! I personally haven't made progress on any of the parts I expected to
work on last week, so these are just postponed. In addition I rechecked the
expected cleanups of contrib/. I couldn't find my notes on the proposal I
discussed between a few of us but that wasn't very difficult, so I'll be
able to do it again (in short I want to separate what links with haproxy
and what does not, tools for users vs tools for developers, and what is
version-specific from what is not).

Emeric implemented the accidently missing unix-dgram socket binding which
was missing for dgram-based sockets as used in the log-forward sections.

Christopher fixed a race condition between Lua's memory allocators and thread
dump signals that could deadlock the watchdog or a "show threads" command if
the signal was caught in the middle of a malloc() call there.

Olivier made some cleanup to the connection setup code, which used to pass
through a non-trivial sequence when several transport layers were involved
(e.g. SSL + send-proxy). Now it's much cleaner and less confusing especially
for those single-stepping the code in gdb!

Amaury did a nice cleanup pass on the server keywords parsing, and the
cherry on the cake is that with this done he could implement support for
creating servers at runtime from the CLI. Yeah :-) There are still quite
some limitations to this, only certain options may be set, checks and
resolvers are not yet supported, static LB algorithms are not supported,
etc. Initially I wasn't much in favor of doing such a sensitive change
this late in the release cycle, but the code is so well isolated that it
does not represent any risk for those not using it, and we do know that
there are a lot of people waiting for this. So we agreed to release it
early and mark it experimental. That is, you won't see the "add server"
command on the CLI until you first issue "experimental-mode on". This way
only those willing to experiment can do it, and this can help collect early
feedback without affecting anyone else. Please try it if you've been waiting
for this, and share your feedback. Be careful, there's no deletion yet :-)

Eric fixed an amusing bug (if I can say). The "unix-bind prefix" directive
applied to any listening unix socket, including the one passed on the command
line with a full absolute path after "-S". This would typically break the
use cases for those having to place a listener in a chroot, as this would
result in the master socket being placed there as well, which kind of
defeats the original intent...

The plans for dev14 remain the same as they were for dev13. I also identified
that documenting the listeners architecture is becoming really needed now,
so this was added to the to-do list.

Please find the usual URLs below :
   Site index       : http://www.haproxy.org/
   Discourse        : http://discourse.haproxy.org/
   Slack channel    : https://slack.haproxy.org/
   Issue tracker    : https://github.com/haproxy/haproxy/issues
   Wiki             : https://github.com/haproxy/wiki/wiki
   Sources          : http://www.haproxy.org/download/2.4/src/
   Git repository   : http://git.haproxy.org/git/haproxy.git/
   Git Web browsing : http://git.haproxy.org/?p=haproxy.git
   Changelog        : http://www.haproxy.org/download/2.4/src/CHANGELOG
   Cyril's HTML doc : http://cbonte.github.io/haproxy-dconv/

Willy
---
Complete changelog :
Amaury Denoyelle (16):
      MINOR: cli: implement experimental-mode
      REORG: server: add a free server function
      MINOR: cfgparse: always alloc idle conns task
      REORG: server: move keywords in srv_kws
      MINOR: server: remove fastinter from mistyped kw list
      REORG: server: split parse_server
      REORG: server: move alert traces in parse_server
      REORG: server: rename internal functions from parse_server
      REORG: server: attach servers in parse_server
      REORG: server: use flags for parse_server
      MINOR: server: prepare parsing for dynamic servers
      MINOR: stats: export function to allocate extra proxy counters
      MEDIUM: server: implement 'add server' cli command
      REGTESTS: implement test for 'add server' cli
      MINOR: server: enable standard options for dynamic servers
      MINOR: server: support keyword proto in 'add server' cli

Christopher Faulet (5):
      BUG/MINOR: resolvers: Add missing case-insensitive comparisons of DNS 
hostnames
      CLEANUP: Fix a typo in fix_is_valid description
      CLEANUP: tcp-rules: Fix a typo in error messages about 
expect-netscaler-cip
      MEDIUM: lua: Use a per-thread counter to track some non-reentrant parts 
of lua
      BUG/MEDIUM: debug/lua: Don't dump the lua stack if not dumpable

Emeric Brun (1):
      BUG/MINOR: protocol: add missing support of dgram unix socket.

Eric Salama (2):
      MINOR/BUG: mworker/cli: do not use the unix_bind prefix for the master 
CLI socket
      MINOR: mworker/cli: alert the user if we enabled a master CLI but not the 
master-worker mode

Olivier Houchard (5):
      MINOR: raw_sock: Add a close method.
      MEDIUM: connections: Introduce a new XPRT method, start().
      MEDIUM: connections: Implement a start() method for xprt_handshake.
      MEDIUM: connections: Implement a start() method in ssl_sock.
      MINOR: muxes: garbage collect the reset() method.

Willy Tarreau (11):
      BUG/MEDIUM: cli: fix "help" crashing since recent spelling fixes
      BUG/MINOR: cfgparse: use the GLOBAL not LISTEN keywords list for spell 
checking
      MINOR: tools: improve word fingerprinting by counting presence
      MINOR: tools: do not sum squares of differences for word fingerprints
      MINOR: cli: improve fuzzy matching to work on all remaining words at once
      MINOR: cli: sort the suggestions by order of relevance
      MINOR: cli: limit spelling suggestions to 5
      MINOR: cfgparse/proxy: also support spelling fixes on options
      MINOR: time: export the global_now variable
      BUG/MINOR: freq_ctr/threads: make use of the last updated global time
      MINOR: freq_ctr/threads: relax when failing to update a sliding window 
value

---

Reply via email to