Hi, HAProxy 2.1.1 was released on 2019/12/11. It added 43 new commits after version 2.1.0.
Overall I must say I'm particularly happy about the positive effect of the long stabilization period prior to the final release. It's been slightly more than two weeks since 2.1.0 and we didn't have a single regression yet, all bugs fixed were already present in earlier releases. As a result there is nothing dramatic, mostly some annoyances, so it's the right moment to flush the pipe and provide a cleaner version to all those who had not yet started to upgrade. Only one bug was tagged MAJOR, it's about the DNS. It's been there for a while, is unlikely to strike but when it strikes it requires a restart of the process and there is no workaround, which is why it's tagged as such. For the rest, thanks to a lot of quite detailed reports, we could address a long tail of bugs causing threads or processes to spin like crazy. Some of them were caused by a race condition in the listener code when using threads, some by the DNS, others by health checks. Another issue can occasionally cause server timeouts to be logged when using splicing. Overall nothing alarming. I suggest every user to upgrade to avoid falling into such traps, though there's no really no need to hurry. 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 Sources : http://www.haproxy.org/download/2.1/src/ Git repository : http://git.haproxy.org/git/haproxy-2.1.git/ Git Web browsing : http://git.haproxy.org/?p=haproxy-2.1.git Changelog : http://www.haproxy.org/download/2.1/src/CHANGELOG Cyril's HTML doc : http://cbonte.github.io/haproxy-dconv/ Willy --- Complete changelog : Christopher Faulet (9): BUG/MINOR: h1: Don't test the host header during response parsing BUG/MINOR: http-htx: Don't make http_find_header() fail if the value is empty BUG/MINOR: fcgi-app: Make the directive pass-header case insensitive BUG/MINOR: stats: Fix HTML output for the frontends heading BUG/MEDIUM: mux-h1: Never reuse H1 connection if a shutw is pending BUG/MINOR: mux-h1: Don't rely on CO_FL_SOCK_RD_SH to set H1C_F_CS_SHUTDOWN BUG/MINOR: mux-h1: Fix conditions to know whether or not we may receive data BUG/MINOR: mux-h1: Be sure to set CS_FL_WANT_ROOM when EOM can't be added BUG/MEDIUM: mux-fcgi: Handle cases where the HTX EOM block cannot be inserted Emmanuel Hocdet (2): BUG/MINOR: ssl: fix SSL_CTX_set1_chain compatibility for openssl < 1.0.2 BUG/MINOR: ssl: certificate choice can be unexpected with openssl >= 1.1.1 Julien Pivotto (2): DOC: Fix ordered list in summary DOC: proxies: HAProxy only supports 3 connection modes Mathias Weiersmueller (1): DOC: clarify matching strings on binary fetches Olivier Houchard (3): BUG/MEDIUM: tasks: Make sure we switch wait queues in task_set_affinity(). BUG/MEDIUM: checks: Make sure we set the task affinity just before connecting. BUG/MEDIUM: kqueue: Make sure we report read events even when no data. Tim Duesterhus (1): DOC: Clarify behavior of server maxconn in HTTP mode William Dauchy (1): BUG/MINOR: contrib/prometheus-exporter: decode parameter and value only William Lallemand (3): DOC: ssl/cli: set/commit/abort ssl cert BUG/MINOR: ssl/cli: 'ssl cert' cmd only usable w/ admin rights BUG/MINOR: ssl/cli: don't overwrite the filters variable Willy Tarreau (21): BUILD/MINOR: trace: fix use of long type in a few printf format strings DOC: move the "group" keyword at the right place BUG/MEDIUM: stream-int: don't subscribed for recv when we're trying to flush data BUG/MINOR: stream-int: avoid calling rcv_buf() when splicing is still possible BUG/MEDIUM: listener/thread: fix a race when pausing a listener BUG/MINOR: proxy: make soft_stop() also close FDs in LI_PAUSED state BUG/MINOR: listener/threads: always use atomic ops to clear the FD events BUG/MINOR: listener: also clear the error flag on a paused listener BUG/MEDIUM: listener/threads: fix a remaining race in the listener's accept() DOC: document the listener state transitions BUG/MAJOR: dns: add minimalist error processing on the Rx path BUG/MEDIUM: proto_udp/threads: recv() and send() must not be exclusive. DOC: listeners: add a few missing transitions BUG/MINOR: tasks: only requeue a task if it was already in the queue DOC: remove references to the outdated architecture.txt BUG/MINOR: log: fix minor resource leaks on logformat error path BUG/MINOR: mworker: properly pass SIGTTOU/SIGTTIN to workers BUG/MINOR: listener: do not immediately resume on transient error BUG/MINOR: server: make "agent-addr" work on default-server line BUG/MINOR: listener: fix off-by-one in state name check BUILD/MINOR: unix sockets: silence an absurd gcc warning about strncpy() ---