Hi, HAProxy 2.2.2 was released on 2020/07/31. It added 16 new commits after version 2.2.1.
It fixes some bugs in the DNS part. First, Jérome fixed a possible NULL pointer dereference leading to a segfault when a server status is updated based on a name resolution if the corresponding DNS answer contains Additional records. He also fixed a parsing error if Authority records is found in a DNS answer. Now, Authority records are just ignored. Finally, a possible spinning loop in the do- resolve action was fixed. If used in tcp-request content ruleset, it was possible to wake up the stream in loop if the inspect-delay timeout was reached on a do-resolve action because it failed to abort the resolution in this case. A segfault during sending data to the server was fixed, with the help of Luke Seelenbinder and Sander Klein. For synchronous connect, it was possible to try sending data before attaching the mux on the connection. Now, before leaving connect_server(), if the connection is fully established, the mux is attached, if necessary. Willy fixed a last minute bug in the order the mux and the transport layer are attached to the connection. The mux was installed before the transport layer, leading to a double subscribes for reveiving with two different subscribers. It is totally unexpected and one event may be lost. On the 2.2, it seems to be a latent bug only. The lua 5.4 support was added. In addition, lua actions are now aborted if they explicitly yield, returning act.YIELD, on a final evaluation. It is only relevant when used in a tcp-request or tcp-response content ruleset. Baruch Siach fixed HAProxy build with static only toolchains, such as uClibc. And at last, the QUERY_STRING FCGI parameter is no longer url-decoded, as specified in the CGI/1.1 specification. The remaining patches are minor bug-fixes and adjustments here and there as always. 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 Wiki : https://github.com/haproxy/wiki/wiki Sources : http://www.haproxy.org/download/2.2/src/ Git repository : http://git.haproxy.org/git/haproxy-2.2.git/ Git Web browsing : http://git.haproxy.org/?p=haproxy-2.2.git Changelog : http://www.haproxy.org/download/2.2/src/CHANGELOG Cyril's HTML doc : http://cbonte.github.io/haproxy-dconv/ --- Complete changelog : Baruch Siach (1): BUILD: tools: fix build with static only toolchains Christopher Faulet (10): BUG/MINOR: mux-fcgi: Don't url-decode the QUERY_STRING parameter anymore BUG/MINOR: debug: Don't dump the lua stack if it is not initialized MEDIUM: lua: Add support for the Lua 5.4 BUG/MEDIUM: dns: Don't yield in do-resolve action on a final evaluation BUG/MINOR: lua: Abort execution of actions that yield on a final evaluation BUG/MINOR: tcp-rules: Preserve the right filter analyser on content eval abort BUG/MINOR: tcp-rules: Set the inspect-delay when a tcp-response action yields BUG/MEDIUM: connection: Be sure to always install a mux for sync connect MINOR: connection: Preinstall the mux for non-ssl connect MINOR: stream-int: Be sure to have a mux to do sends and receives Jerome Magnin (2): BUG/MAJOR: dns: fix null pointer dereference in snr_update_srv_status BUG/MAJOR: dns: don't treat Authority records as an error Willy Tarreau (3): SCRIPTS: announce-release: add the link to the wiki in the announce messages BUG/MEDIUM: backend: always attach the transport before installing the mux BUG/MEDIUM: tcp-checks: always attach the transport before installing the mux -- Christopher Faulet