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