Hi,

HAProxy 2.0.4 was released on 2019/08/06. It added 30 new commits after
version 2.0.3.

This release mainly addresses a thread deadlock issue in the queue
management, a significant number of H2 issues, and the usual lot of htx,
stream, lua and check fixes.

When working on Patrick Hemmer's bug reported a month ago (thanks Patrick
for all your traces by the way) I had a fairly long head scratching, trying
to figure how such impossible stuff could be present in the traces, until I
started to build a nice collection of fixes for various small bugs which
very likely explain a number of remaining issues people have been facing on
HTTP/2 namely on gRPC, as well as what Luke noticed with his map server. So
the opportunity was too great to produce a new version and wipe all these
problems at once from possible candidates for future bug reports. I've
spent so much time on this ones that I simply don't remember what the other
ones were about, but the changelog will help.

I'd suggest that anyone using HTTP/2 or having had a bad experience with
it (particularly with spurious resets or with stalled transfers) gives 2.0.4
a try.

I'm also interested in feedback on the smtp/mysql/pgsql checks. It was
reported in issue 187 that we recently started to close checks a bit too
aggressively, which was indeed right. I relaxed this for the protocols
where I knew we were supposed to be nice with the server and close first
at the expense of accumulating TIME_WAITs. The reporter didn't see any
improvement though it was OK for me. Thus if anyone is having issues
where a checked server logs errors about aborted connections, please test
this version as well.

I've already updated the 1.9 branch with all pending fixes but I'm not sure
it's worth emitting 1.9.10 yet since most of these are mostly annoying but
not serious enough to force everyone to upgrade again. However since 1.8
definitely needs a new one, we might still have to emit one of each branch
(as I don't want anyone to face regressions when upgrading from the latest
stable of a branch to the latest stable of a more recent branch).

Now it's time to let my old worn out brain have some rest...

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

Willy
---
Complete changelog :
Christopher Faulet (8):
      BUG/MEDIUM: lb-chash: Fix the realloc() when the number of nodes is 
increased
      BUG/MINOR: hlua/htx: Reset channels analyzers when txn:done() is called
      BUG/MEDIUM: hlua: Check the calling direction in lua functions of the 
HTTP class
      MINOR: hlua: Don't set request analyzers on response channel for lua 
actions
      MINOR: hlua: Add a flag on the lua txn to know in which context it can be 
used
      BUG/MINOR: hlua: Only execute functions of HTTP class if the txn is HTTP 
ready
      BUG/MINOR: htx: Fix free space addresses calculation during a block 
expansion
      BUG/MEDIUM: lb-chash: Ensure the tree integrity when server weight is 
increased

Olivier Houchard (3):
      BUG/MEDIUM: streams: Don't switch the SI to SI_ST_DIS if we have data to 
send.
      BUG/MEDIUM: proxy: Make sure to destroy the stream on upgrade from TCP to 
H2
      BUG/MEDIUM: fd: Always reset the polled_mask bits in fd_dodelete().

Richard Russo (1):
      BUG/MAJOR: http/sample: use a static buffer for raw -> htx conversion

Willy Tarreau (18):
      BUG/MEDIUM: protocols: add a global lock for the init/deinit stuff
      BUG/MINOR: proxy: always lock stop_proxy()
      BUILD: threads: add the definition of PROTO_LOCK
      BUG/MINOR: log: make sure writev() is not interrupted on a file output
      DOC: improve the wording in CONTRIBUTING about how to document a bug fix
      BUG/MAJOR: queue/threads: avoid an AB/BA locking issue in 
process_srv_queue()
      BUG/MINOR: debug: fix a small race in the thread dumping code
      MINOR: wdt: also consider that waiting in the thread dumper is normal
      BUG/MINOR: stream-int: also update analysers timeouts on activity
      BUG/MEDIUM: mux-h2: unbreak receipt of large DATA frames
      BUG/MEDIUM: mux-h2: split the stream's and connection's window sizes
      BUG/MINOR: mux-h2: don't refrain from sending an RST_STREAM after another 
one
      BUG/MINOR: mux-h2: use CANCEL, not STREAM_CLOSED in h2c_frt_handle_data()
      BUG/MINOR: mux-h2: do not send REFUSED_STREAM on aborted uploads
      BUG/MEDIUM: mux-h2: do not recheck a frame type after a state transition
      BUG/MINOR: mux-h2: always send stream window update before connection's
      BUG/MINOR: mux-h2: always reset rcvd_s when switching to a new frame
      BUG/MEDIUM: checks: make sure to close nicely when we're the last to speak

---

Reply via email to