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 ---