Hi,
HAProxy 2.1.11 was released on 2021/01/08. It added 65 new commits
after version 2.1.10.
I'd like to remind everyone that 2.1 is living its last months as its end
of life was announced as Q1 2021 as anyone can see by typing "haproxy -v".
As long as it doesn't hurt to emit a few more releases, I don't care much
about keeping it alive a little bit if some still need it, but barring any
new serious bug, you should reasonably consider that it's likely the last
one you're going to deploy before upgrading to 2.2 or 2.3. As usual, if
for any reason you think you need it to be maintained a bit longer (e.g.
facing a regression in more recent ones), please let us know very quickly.
Here come the bugs that were fixed since 2.2.6:
- Gilchrist Dadaglo fixed a number of issues in the SPOA Python example,
particularly on the error handling path. I seem to understand that most
of them are related to risks of memory leaks. If you wrote some code
using them as a form of documentation, please have a look at the recent
changes there to see if you need to fix your code as well.
- Olivier fixed a problem affecting users of ARM-based Macs, whose
assembler takes the semi-colon as a comment instead of an instruction
delimiter, causing the CAS to fail and loop forever.
- Olivier and I addressed some memory ordering issues in the scheduler and
self-locked lists that triggered on AWS' new ARM Graviton2 platform. We
can thank Ashley Penney for all the useful tests and traces he provided!
- Christopher fixed a delay issue affecting tunnels, where MSG_MORE was
accidently left set, possibly delaying sending incomplete packets by up
to 200ms.
- Christopher also addressed a race condition affecting leastconn if a
server's weight is changed to zero at the same moment the server is
repositionned in the tree. In fact it's only an issue for 1.8 but the
code was not correct in more recent versions either, but they're just
more robust :-)
- Christopher fixed a possible dangling pointer in SPOE that could cause
random memory overwrites. Special thanks to Maciej Zdeb for tirelessly
deploying test patches and checking traces to narrow it down!
- Maciej fixed the sample fetches to retrieve messages cookies when
called without cookie name. This case was never properly handled,
contrary to what the doc says.
- Tim fixed a missing call to the H2 mux's wakeup function in some
cases. The bug could in theory cause some delays on long
responses having no otherwise traffic, but could not be observed.
- Thierry addressed a handful of low-importance Lua issues that were
found during a code review.
- Fred fixed a few bugs in the peers protocol parser and the dictionaries
that were occasionally causing peers to get desynchronized.
- the "concat" converter could corrupt its output if a non-string variable
was used in the middle (e.g. an integer).
That's roughly all for bugs. Two minor features were backported, one is
William Dauchy's new "build_info" field in the prometheus exporter, which
reports the exact haproxy version for those who need to adjust their
behavior depending on the version, and the second is the new "url_enc"
converter which eases encoding of anything to be placed used in a query
string (e.g. for a redirect that will be decoded using url_dec).
And there were the usual amount of build fixes and doc updates.
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.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 :
Amaury Denoyelle (1):
BUG/MINOR: srv: do not init address if backend is disabled
Christian Ruppert (1):
BUILD: hpack: hpack-tbl-t.h uses VAR_ARRAY but does not include compiler.h
Christopher Faulet (16):
MINOR: http-htx: Add understandable errors for the errorfiles parsing
BUG/MINOR: http-htx: Just warn if payload of an errorfile doesn't match
the C-L
BUG/MINOR: http-fetch: Fix calls w/o parentheses of the cookie sample
fetches
BUG/MAJOR: spoe: Be sure to remove all references on a released spoe
applet
MINOR: spoe: Don't close connection in sync mode on processing timeout
BUG/MEDIUM: filters: Forward all filtered data at the end of http
filtering
BUG/MINOR: http-ana: Don't wait for the body of CONNECT requests
BUG/MAJOR: filters: Always keep all offsets up to date during data
filtering
DOC: config: Move req.hdrs and req.hdrs_bin in L7 samples fetches section
BUG/MINOR: tools: make parse_time_err() more strict on the timer validity
BUG/MINOR: tools: Reject size format not starting by a digit
BUG/MEDIUM: lb-leastconn: Reposition a server using the right eweight
CLEANUP: lua: Remove declaration of an inexistant function
BUG/MINOR: mux-h1: Don't set CS_FL_EOI too early for protocol upgrade
requests
BUG/MEDIUM: http-ana: Never for sending data in TUNNEL mode
DOC: Add maintainers for the Prometheus exporter
David Carlier (1):
DOC: email change of the DeviceAtlas maintainer
Eric Salama (1):
MINOR: cfgparse: tighten the scope of newnameserver variable, free it on
error.
Frédéric Lécaille (2):
BUG/MINOR: peers: Do not ignore a protocol error for dictionary entries.
BUG/MINOR: peers: Missing TX cache entries reset.
Gilchrist Dadaglo (8):
BUG/MAJOR: spoa/python: Fixing return None
DOC: spoa/python: Fixing typo in IP related error messages
DOC: spoa/python: Rephrasing memory related error messages
DOC: spoa/python: Fixing typos in comments
BUG/MINOR: spoa/python: Cleanup references for failed Module Addobject
operations
BUG/MINOR: spoa/python: Cleanup ipaddress objects if initialization fails
BUG/MEDIUM: spoa/python: Fixing PyObject_Call positional arguments
BUG/MEDIUM: spoa/python: Fixing references to None
Maciej Zdeb (2):
BUG/MINOR: http-fetch: Extract cookie value even when no cookie name
DOC: Clarify %HP description in log-format
Olivier Houchard (1):
MINOR: atomic: don't use ; to separate instruction on aarch64.
Phil Scherer (1):
DOC/MINOR: Fix formatting in Management Guide
Pierre Cheynier (1):
CLEANUP: contrib/prometheus-exporter: typo fixes for ssl reuse metric
Thayne McCombs (2):
DOC: fix some spelling issues over multiple files
SCRIPTS: announce-release: fix typo in help message
Thierry Fournier (10):
BUG/MINOR: pattern: a sample marked as const could be written
BUG/MINOR: lua: set buffer size during map lookups
BUG/MINOR: lua: missing "\n" in error message
BUG/MINOR: lua: lua-load doesn't check its parameters
BUG/MINOR: lua: Post init register function are not executed beyond the
first one
BUG/MINOR: lua: Some lua init operation are processed unsafe
MINOR: actions: Export actions lookup functions
MINOR: actions: add a function returning a service pointer from its name
MINOR: cli: add a function to look up a CLI service description
BUG/MINOR: lua: warn when registering action, conv, sf, cli or applet
multiple times
Tim Duesterhus (2):
BUG/MEDIUM: mux_h2: Add missing braces in h2_snd_buf()around trace+wakeup
BUG/MINOR: cfgparse: Fail if the strdup() for `rule->be.name` for
`use_backend` fails
William Dauchy (2):
BUILD: Makefile: exclude broken tests by default
MINOR: contrib/prometheus-exporter: export build_info
Willy Tarreau (13):
BUG/MEDIUM: peers: fix decoding of multi-byte length in stick-table
messages
BUILD: http-htx: fix build warning regarding long type in printf
BUG/MAJOR: peers: fix partial message decoding
REGTESTS: make use of HAPROXY_ARGS and pass -dM by default
BUILD: Makefile: have "make clean" destroy .o/.a/.s in contrib subdirs as
well
CONTRIB: halog: fix build issue caused by %L printf format
CONTRIB: halog: mark the has_zero* functions unused
CONTRIB: halog: fix signed/unsigned build warnings on counts and
timestamps
CONTRIB: debug: address "poll" utility build on non-linux platforms
BUILD: plock: remove dead code that causes a warning in gcc 11
SCRIPTS: improve announce-release to support different tag and versions
SCRIPTS: make announce release support preparing announces before tag
exists
BUG/MINOR: sample: fix concat() converter's corruption with non-string
variables
Your Name (1):
MINOR: plock: use an ARMv8 instruction barrier for the pause instruction
---