Hi, HAProxy 2.1.5 was released on 2020/05/29. It added 90 new commits after version 2.1.4.
This version reverts some fixes about the Proxy Protocol introduced in 2.1.4, unfortunately these fixes broke softwares that weren't following correctly the Proxy Protocol specification. The "http-check send" keyword was backported, it allows you to add extra headers and payload in your HTTP checks. William Dauchy fixed the connection idle cleanup upon a server maintenance or an ip/port change. Some crashes were fixed with the unique-id, the http_first_req, and the capture.* sample fetches when called without a stream. A bug with the no-check-ssl option was fixed. A really old bug was found in the shctx lock code, making the process crash when there is a lot of lock contention on the cache. The shctx code is also used for the SSL sessions cache but there is less chance to provoke this problem. An HTTP reuse issue was fixed when using NTML authentication, this was fixed by using a safer test for making the NTML sessions private. Please have a look at the changelog below for the complete list of fixes, and do not forget to update. 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/ --- Complete changelog : Adam Mills (1): DOC: hashing: update link to hashing functions Adis Nezirovic (1): BUG/MEDIUM: lua: Fix dumping of stick table entries for STD_T_DICT Aleksandar Lazi (1): DOC/MINOR: halog: Add long help info for ic flag Christopher Faulet (21): BUG/MINOR: check: Update server address and port to execute an external check MINOR: checks: Add a way to send custom headers and payload during http chekcs BUG/MINOR: checks: Respect the no-check-ssl option BUG/MEDIUM: server/checks: Init server check during config validity check BUG/MINOR: obj_type: Handle stream object in obj_base_ptr() function BUG/MINOR: mux-fcgi: Be sure to have a connection as session's origin to use it REGTEST: http-rules: Require PCRE or PCRE2 option to run map_redirect script BUG/MINOR: checks/server: use_ssl member must be signed BUG/MINOR: checks: Compute the right HTTP request length for HTTP health checks BUG/MINOR: checks: Remove a warning about http health checks BUG/MEDIUM: mux_fcgi: Free the FCGI connection at the end of fcgi_release() BUG/MEDIUM: mux-fcgi: Fix wrong test on FCGI_CF_KEEP_CONN in fcgi_detach() BUG/MEDIUM: h1: Don't compare host and authority if only h1 headers are parsed BUG/MINOR: sample: Set the correct type when a binary is converted to a string BUG/MINOR: config: Make use_backend and use-server post-parsing less obscur BUG/MINOR: cache: Don't needlessly test "cache" keyword in parse_cache_flt() BUG/MAJOR: mux-fcgi: Stop sending loop if FCGI stream is blocked for any reason BUG/MINOR: checks: Respect check-ssl param when a port or an addr is specified BUG/MINOR: server: Fix server_finalize_init() to avoid unused variable DOC: SPOE is no longer experimental REGTESTS: checks: Fix tls_health_checks when IPv6 addresses are used Dragan Dosen (1): BUG/MEDIUM: ssl: fix the id length check within smp_fetch_ssl_fc_session_id() Emeric Brun (2): BUG/MINOR: logs: prevent double line returns in some events. BUG/MEDIUM: logs: fix trailing zeros on log message. Frédéric Lécaille (2): BUG/MINOR: protocol_buffer: Wrong maximum shifting. BUG/MINOR: peers: Incomplete peers sections should be validated. Gaetan Rivet (1): BUG/MINOR: checks: chained expect will not properly wait for enough data Jerome Magnin (4): BUG/MINOR: ssl: default settings for ssl server options are not used DOC: option logasap does not depend on mode BUILD: select: only declare existing local labels to appease clang DOC: retry-on can only be used with mode http Nathan Neulinger (1): BUG/MINOR: lua: Add missing string length for lua sticktable lookup Olivier Doucet (1): DOC: Improve documentation on http-request set-src Olivier Houchard (3): BUG/MEDIUM: http-ana: Handle NTLM messages correctly. BUG/MEDIUM: streams: Remove SF_ADDR_SET if we're retrying due to L7 retry. BUG/MEDIUM: stream: Only allow L7 retries when using HTTP. Tim Duesterhus (2): MINOR: version: Show uname output in display_version() BUG/MINOR: cfgparse: Abort parsing the current line if an invalid \x sequence is encountered William Dauchy (3): BUG/MEDIUM: connections: force connections cleanup on server changes CLEANUP: connections: align function declaration BUG/MINOR: pollers: remove uneeded free in global init William Lallemand (5): MINOR: ssl: improve the errors when a crt can't be open BUG/MINOR: ssl/cli: memory leak in 'set ssl cert' BUG/MINOR: ssl: memleak of the struct cert_key_and_chain MINOR: contrib: make the peers wireshark dissector a plugin REGTEST: ssl: test the client certificate authentication Willy Tarreau (41): tBUG/MINOR: connection: always send address-less LOCAL PROXY connections BUG/MINOR: tools: fix the i386 version of the div64_32 function BUG/MINOR: http: make url_decode() optionally convert '+' to SP MEDIUM: memory: make pool_gc() run under thread isolation BUG/MEDIUM: capture: capture-req/capture-res converters crash without a stream BUG/MEDIUM: capture: capture.{req,res}.* crash without a stream BUG/MEDIUM: http: the "http_first_req" sample fetch could crash without a steeam BUG/MEDIUM: http: the "unique-id" sample fetch could crash without a steeam BUG/MEDIUM: sample: make the CPU and latency sample fetches check for a stream BUG/MEDIUM: listener: mark the thread as not stuck inside the loop MINOR: threads: export the POSIX thread ID in panic dumps BUG/MINOR: debug: properly use long long instead of long for the thread ID BUG/MEDIUM: shctx: really check the lock's value while waiting BUG/MEDIUM: shctx: bound the number of loops that can happen around the lock MINOR: stream: report the list of active filters on stream crashes MINOR: haproxy: export run_poll_loop MINOR: tools: add new function dump_addr_and_bytes() MINOR: tools: add resolve_sym_name() to resolve function pointers MINOR: debug: use resolve_sym_name() to dump task handlers MINOR: cli: make "show fd" rely on resolve_sym_name() MEDIUM: debug: add support for dumping backtraces of stuck threads MINOR: debug: call backtrace() once upon startup BUILD: Makefile: include librt before libpthread MINOR: wdt: do not depend on USE_THREAD MINOR: debug: report the number of entries in the backtrace MINOR: debug: improve backtrace() on aarch64 and possibly other systems MINOR: debug: use our own backtrace function on clang+x86_64 MINOR: debug: dump the whole trace if we can't spot the starting point BUILD: tools: unbreak resolve_sym_name() on non-GNU platforms BUILD: tools: rely on __ELF__ not USE_DL to enable use of dladdr() BUILD: Makefile: add linux-musl to TARGET Revert "BUG/MINOR: connection: always send address-less LOCAL PROXY connections" Revert "BUG/MINOR: connection: make sure to correctly tag local PROXY connections" BUG/MINOR: threads: fix multiple use of argument inside HA_ATOMIC_CAS() BUG/MINOR: threads: fix multiple use of argument inside HA_ATOMIC_UPDATE_{MIN,MAX}() BUG/MINOR: http-ana: fix NTLM response parsing again BUG/MEDIUM: http_ana: make the detection of NTLM variants safer BUG/MINOR: pools: use %u not %d to report pool stats in "show pools" BUG/MINOR: soft-stop: always wake up waiting threads on stopping BUG/MEDIUM: ring: write-lock the ring while attaching/detaching BUG/MINOR: nameservers: fix error handling in parsing of resolv.conf --- -- William Lallemand

