Hi, 1.8-rc1 had quite a few painful issues that we managed to sort out, so in order to facilitate testing by most users, here comes 1.8-rc2. Here's an overview of the main changes : - fixed the deadlock that prevented us from using checks and threads at the same time - fixed the bug with the lock on the freq counters causing a CPU loop when retrieving some table entries over peers. - fixed an ugly memory corruption on H2 due to a bug on a buffer manipulation function - fixed a use-after-free bug in the passthrough mux causing random crashes - fixed another loop when the cache is used over H2 - and fixed another cache issue related to filters (I don't remember which one, I'm sorry). - a bunch of missing locks in the DNS code, checks and Lua were addressed during a code review.
There are still some issues we're working on but they require a bit less efforts to work around : - the cache currently must only used in a frontend and with logs enabled (to inherit txn->uri), but it's currently being addressed. Since it's not a big deal, we preferred to make it testable anyway. Please don't use cache rules in the backend and frontend at the same time for now, the behaviour will likely be undefined. - I've been running this version on www.haproxy.org (explaining the short outages a few of you might have noticed while trying to spot the passthrough mux bug). And yes, haproxy.org was delivered in H2 this afternoon :-) But I faced an infinite loop once and unfortunately the core I managed to trigger was unexploitable so I'm trying again without success for now (I'll stop it for the night here, as I want to be in front when it happens to debug it but not to prevent anyone from downloading or accessing the site). Thus, please don't leave it unattended for too long if you don't have an automatic switch-over, even if you think it looks pretty at first glance. - we know that there are some build issues on Solaris which can be worked around, though I think threads will not work due to naming conflicts between macros. Threads are expected to be usable now. I'm going to re-enable them on haproxy.org as soon as I spot the bug causing the rare loop (don't want to mix the two for now). Feel free to test. Coredumps (and their associated executable) are welcome, but only if built with -g (the default). And gdb backtraces (bt full) are very helpful as well, especially if you attach to a stuck or looping process. Please find the usual URLs below : Site index : http://www.haproxy.org/ Discourse : http://discourse.haproxy.org/ Sources : http://www.haproxy.org/download/1.8/src/ Git repository : http://git.haproxy.org/git/haproxy-1.8.git/ Git Web browsing : http://git.haproxy.org/?p=haproxy-1.8.git Changelog : http://www.haproxy.org/download/1.8/src/CHANGELOG Cyril's HTML doc : http://cbonte.github.io/haproxy-dconv/ Willy --- Complete changelog : David Carlier (2): BUG/MINOR: stdarg.h inclusion BUILD: enable USE_THREAD for OpenBSD build. Emeric Brun (4): BUG/MAJOR: fix deadlock on healthchecks. BUG/MINOR: freq: fix infinite loop on freq_ctr_period. BUG/MINOR: dns: fix missing lock protection on server. BUG/MINOR: lua: fix missing lock protection on server. Emmanuel Hocdet (2): BUG/MINOR: send-proxy-v2: fix dest_len in make_tlv call BUG/MINOR: send-proxy-v2: string size must include ('\0') Olivier Houchard (3): MINOR: mux: Only define pipe functions on linux. MINOR: cache: Remove useless test for nonzero. MINOR: cache: Don't confuse act_return and act_parse_ret. William Lallemand (2): BUILD: shctx: allow to be built without openssl BUG/MEDIUM: cache: don't try to resolve wrong filters Willy Tarreau (6): BUG/MEDIUM: h2: don't try to parse incomplete H1 responses BUG/MEDIUM: checks/mux: always enable send-polling after connecting BUG/MINOR: thread: fix a typo in the debug code BUG/MAJOR: buffers: fix get_buffer_nc() for data at end of buffer BUG/MAJOR: mux_pt: don't dereference a connstream after ->wake() MINOR: thread: report multi-thread support in haproxy -vv ---