Hi.
------ Originalnachricht ------
Von: "Willy Tarreau" <[email protected]>
An: [email protected]
Gesendet: 19.11.2017 10:21:36
Betreff: [ANNOUNCE] haproxy-1.8-rc4
Hi everyone!
So it's getting better. When fixing the scheduler issues in the last
RC, I messed up with the tree traversal, leading to some tasks waiting
in the run queue without being found for a while. This was causing some
timeouts and occasionally 100% CPU during normal operation. This is now
fixed. Christopher also fixed an issue we had with both the task and
applet schedulers in multi-threaded configurations, risking to make
some threads spin believing there's some work while there's nothing
for them. At the same time, the applet scheduler was modified to have
a bound on the number of applets run at once, to avoid high latencies
when lots of applets are used (eg: cache).
The master/worker code got several fixes. It doesn't try to call
deinit()
before calling execvp() because it's pointless, and this is the
riskiest
function of the whole program, always risking to die somewhere in case
something doesn't initialize properly. It would be bad to see the
master
die upon reload!
A few other minor issues were fixed (eg: boot messages were lost till
rc3).
Overall everything is in good shape. We have analysed and understood
the issues in the cache revealed when using HTTP/2, these ones should
now be fixed in the following days. Other issues exhibited by HTTP/2
when using redirects and filters uncovered a bug which also affects
1.7 and that we'll fix in the following days as well (several solutions
in mind, we're just checking). A few adjustments still have to be done
on the cache, and we also need to adjust the way to pin processes and
threads to CPUs.
There are still a few cleanups to be done on the internal API, some
functions and variables still have to be renamed as they cause
continued
confusion (eg: the global "proxy" variable). I have to add a startup
check to detect an HTTP/2 configuration with a buffer smaller than 16kB
(this is not permitted by the spec).
I'm quite happy with the current progress and the process is going
well,
with sufficient testers to report corner cases helping narrow down the
remaining bugs.
I'm not yet convinced we'll need an RC5 but we'll see. It's very likely
that next week-end will see 1.8-final if things continue at this speed.
At least, despite the bugs above, haproxy.org has been running on RC3
for the last week with HTTP/2 and threads enabled. We're taking a bit
of risks to enable two experimental features at once but it's the best
way to spot bugs! Something tells me that within a day or two it will
be upgraded to the latest snapshot to enable caching as well :-)
Last point : if you think you've spotted a regression, it's the last
moment to report it. If you expect that someone else will likely find
it
before the release, you'll experience the "dot 0" syndrome. The rule is
simple, if you face a problem, please check if it happens with 1.7. If
it does, the problem can be reported a bit later (but we still need to
know about it). If it doesn't, it's a regression and it must absolutely
be reported as soon as possible.
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/
New docker image is now available
https://hub.docker.com/r/me2digital/haproxy17/
```
HA-Proxy version 1.8-rc4-cfe1466 2017/11/19
Copyright 2000-2017 Willy Tarreau <[email protected]>
Build options :
TARGET = linux2628
CPU = generic
CC = gcc
CFLAGS = -O2 -g -fno-strict-aliasing -Wdeclaration-after-statement
-fwrapv -Wno-unused-label
OPTIONS = USE_LINUX_SPLICE=1 USE_GETADDRINFO=1 USE_ZLIB=1
USE_REGPARM=1 USE_OPENSSL=1 USE_LUA=1 USE_PCRE=1 USE_PCRE_JIT=1
USE_TFO=1
Default settings :
maxconn = 2000, bufsize = 16384, maxrewrite = 1024, maxpollevents =
200
Built with OpenSSL version : OpenSSL 1.0.2k-fips 26 Jan 2017
Running on OpenSSL version : OpenSSL 1.0.2k-fips 26 Jan 2017
OpenSSL library supports TLS extensions : yes
OpenSSL library supports SNI : yes
OpenSSL library supports : SSLv3 TLSv1.0 TLSv1.1 TLSv1.2
Built with Lua version : Lua 5.3.4
Built with transparent proxy support using: IP_TRANSPARENT
IPV6_TRANSPARENT IP_FREEBIND
Built with network namespace support.
Built with zlib version : 1.2.7
Running on zlib version : 1.2.7
Compression algorithms supported : identity("identity"),
deflate("deflate"), raw-deflate("deflate"), gzip("gzip")
Encrypted password support via crypt(3): yes
Built with PCRE version : 8.32 2012-11-30
Running on PCRE version : 8.32 2012-11-30
PCRE library supports JIT : yes
Built with multi-threading support.
Available polling systems :
epoll : pref=300, test result OK
poll : pref=200, test result OK
select : pref=150, test result OK
Total: 3 (3 usable), will use epoll.
Available filters :
[SPOE] spoe
[COMP] compression
[TRACE] trace
```
Willy
Regards
Aleks