Hi,

HAProxy 2.7.6 was released on 2023/03/28. It added 39 new commits
after version 2.7.5.

Here is a short summary of the improvements :

Aurélien has extended the internal listener API to better handle the
resume operation. One noticeable effect is that listeners that have an
ABNS abstract namespace socket can now support reload without crashing
haproxy. Also, it also ensures properly that 'no-quic' configuration
keyword is respected on reload so that disabled QUIC listeners are not
started.

Christopher fixed an issue affecting the H1 multiplexer. If the reponse
was fully transferred before the whole request is read, there was a risk
that the channel is left open without any further processing. In the
end, this caused the stream to enter a spinning loop which triggered an
assertion failure crash.

A similar problem was also encountered for the stats applet when large
GET HTTP requests were issued to it. The stream is left in a blocked
state with memory resource consumed for nothing.

As usual, several QUIC improvements were introduced. Two github issues
were opened recently about an assertion failure on the sending code
after several hours of running. A serie of patches were deployed to
solve them, with notably a fix on the connection level flow-control
calculation. Also, probing on PTO expiration has been corrected which
should improve transfers under packet loss condition. Finally, if a
connection is preemptively closed by haproxy for any reason the
CONNECTION_CLOSE error code should be more precise.

Willy has fixed several crashes and leaks related to potential memory
allocation failures. The code is now more robust and should better
resist under memory pressure.

Thanks to everyone who contributed to this release.

#############################################################################################
Please find the usual URLs below :
   Site index       : https://www.haproxy.org/
   Documentation    : https://docs.haproxy.org/
   Wiki             : https://github.com/haproxy/wiki/wiki
   Discourse        : https://discourse.haproxy.org/
   Slack channel    : https://slack.haproxy.org/
   Issue tracker    : https://github.com/haproxy/haproxy/issues
   Sources          : https://www.haproxy.org/download/2.7/src/
   Git repository   : https://git.haproxy.org/git/haproxy-2.7.git/
   Git Web browsing : https://git.haproxy.org/?p=haproxy-2.7.git
   Changelog        : https://www.haproxy.org/download/2.7/src/CHANGELOG
   Dataplane API    : 
https://github.com/haproxytech/dataplaneapi/releases/latest
   Pending bugs     : https://www.haproxy.org/l/pending-bugs
   Reviewed bugs    : https://www.haproxy.org/l/reviewed-bugs
   Code reports     : https://www.haproxy.org/l/code-reports
   Latest builds    : https://www.haproxy.org/l/dev-packages

---
Complete changelog :
Amaury Denoyelle (13):
      BUG/MINOR: quic: wake up MUX on probing only for 01RTT
      BUG/MINOR: quic: ignore congestion window on probing for MUX wakeup
      BUG/MINOR: trace: fix hardcoded level for TRACE_PRINTF
      BUG/MEDIUM: mux-quic: release data from conn flow-control on qcs reset
      MINOR: mux-quic: complete traces for qcs emission
      MINOR: mux-quic: adjust trace level for MAX_DATA/MAX_STREAM_DATA recv
      MINOR: mux-quic: add flow-control info to minimal trace level
      BUG/MINOR: h3: properly handle incomplete remote uni stream type
      BUG/MINOR: mux-quic: prevent CC status to be erased by shutdown
      MINOR: mux-quic: interrupt qcc_recv*() operations if CC scheduled
      MINOR: mux-quic: ensure CONNECTION_CLOSE is scheduled once per conn
      MINOR: mux-quic: close on qcs allocation failure
      MINOR: mux-quic: close on frame alloc failure

Aurelien DARRAGON (14):
      MINOR: proto_uxst: add resume method
      MINOR: listener/api: add lli hint to listener functions
      MINOR: listener: add relax_listener() function
      MINOR: listener: workaround for closing a tiny race between 
resume_listener() and stopping
      MINOR: listener: make sure we don't pause/resume bypassed listeners
      BUG/MEDIUM: listener: fix pause_listener() suspend return value handling
      BUG/MINOR: listener: fix resume_listener() resume return value handling
      BUG/MEDIUM: resume from LI_ASSIGNED in default_resume_listener()
      MINOR: listener: pause_listener() becomes suspend_listener()
      BUG/MEDIUM: listener/proxy: fix listeners notify for proxy resume
      MEDIUM: proto_ux: properly suspend named UNIX listeners
      MINOR: proto_ux: ability to dump ABNS names in error messages
      DOC: config: set-var() dconv rendering issues
      BUG/MINOR: applet/new: fix sedesc freeing logic

Christopher Faulet (2):
      BUG/MEDIUM: stats: Consume the request except when parsing the POST 
payload
      BUG/MEDIUM: mux-h1: Wakeup H1C on shutw if there is no I/O subscription

Frédéric Lécaille (3):
      MINOR: quic: Stop stressing the acknowledgments process (RX ACK frames)
      BUG/MINOR: quic: Dysfunctional 01RTT packet number space probing
      BUG/MINOR: quic: Missing STREAM frame type updated

Willy Tarreau (7):
      BUG/MEDIUM: stream: do not try to free a failed stream-conn
      BUG/MEDIUM: mux-h2: do not try to free an unallocated h2s->sd
      BUG/MEDIUM: mux-h2: erase h2c->wait_event.tasklet on error path
      BUG/MEDIUM: stconn: don't set the type before allocation succeeds
      BUG/MINOR: stconn: fix sedesc memory leak on stream allocation failure
      BUG/MEDIUM: mux-h1: properly destroy a partially allocated h1s
      BUG/MEDIUM: applet: only set appctx->sedesc on successful allocation

---

Reply via email to