Hi,

HAProxy 2.5.4 was released on 2022/02/25. It added 8 new commits
after version 2.5.3.

A major issue in the H2 multiplexer was fixed in this release. An error
during the response processing, after the HEADERS frame parsing, led to a
wakeup loop consuming all the CPU because the error was not properly
reported to the upper layer. For instance, this happened if an invalid
header value, an invalid status code or a forbidden header was found in the
response. Note that only HAProxy >= 2.4 are affected by this issue.

In addition, some issues about errors on buffers allocation were
fixed. First, in the H1 multiplexer. If we failed to send data because we
failed to allocate the H1 output buffer, the H1 stream was erroneously woken
up. This led to a wakeup loop to send more data while it is not possible
because there is no output buffer. Then, in process_stream(), if we failed
to allocate the channel response buffer while a connect or an analysis
timeout occurred, the stream was woken up in loop because its task was
requeued with an expired date. Now an error is reported when this happens
and the stream processing is interrupted.

Note there is a mechanism to deal with errors on buffers allocation.
Unfortunately, since the 1.7, this mechanism is broken. And it is even worse
now with the multiplexers. All this part must be refactored. But for now,
HAProxy may be partially Frozen if too many entities are waiting for a
buffer.

Other commits are doc improvements and small fixes here and there. As usual,
people using the 2.5 branch are encouraged to migrate to this version.

Thanks everyone for your help and your contributions!

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.5/src/
   Git repository   : http://git.haproxy.org/git/haproxy-2.5.git/
   Git Web browsing : http://git.haproxy.org/?p=haproxy-2.5.git
   Changelog        : http://www.haproxy.org/download/2.5/src/CHANGELOG
   Cyril's HTML doc : http://cbonte.github.io/haproxy-dconv/


---
Complete changelog :
Christian Ruppert (1):
      DOC: Fix usage/examples of deprecated ACLs

Christopher Faulet (4):
      BUG/MEDIUM: htx: Be sure to have a buffer to perform a raw copy of a 
message
      BUG/MEDIUM: mux-h1: Don't wake h1s if mux is blocked on lack of output 
buffer
      BUG/MAJOR: mux-h2: Be sure to always report HTX parsing error to the app 
layer
      BUG/MEDIUM: stream: Abort processing if response buffer allocation fails

Willy Tarreau (3):
      BUG/MINOR: proxy: preset the error message pointer to NULL in 
parse_new_proxy()
      REGTESTS: fix the race conditions in 40be_2srv_odd_health_checks
      CI: github: enable pool debugging by default

--
Christopher Faulet

Reply via email to