Hi Willy,

On 2015/1/1 5:47, Willy Tarreau wrote:
Hi all!

I just noticed we've had a number of medium fixes pending for one month.
I think I'm not taking too much risk saying this is supposed to be the
last release of 2014 given that it's unlikely that someone will report
a build issue in the last few minutes or hours that remain depending on
what side of the world you're on :-)

Most of the fixes are related to how we deal with out-of-memory situations.
This normally interests nobody except those who run many instances on
memory-bound servers. There was a very unlikely but possible case of
crash when it was not possible to allocate a small chunk of memory (I
managed to reproduce it after a long time during extremely aggressive
tests).

There are a few fixes on tcp-checks, one for a bug causing some random
contents to be analysed, another one where quick acks were disabled when
there was no data to send, causing 200ms delays when "option tcp-check"
was specified alone.

Another bug concerned proxies disabled in the configuration which could
under some circumstances cause a segfault upon startup during the process
mask propagation between frontends and backends.

The rest is mostly harmless.

Here's the full changelog for 1.5.10 :
     - DOC: fix a few typos
     - BUG/MINOR: http: fix typo: "401 Unauthorized" => "407 Unauthorized"
     - BUG/MINOR: parse: refer curproxy instead of proxy
     - DOC: httplog does not support 'no'
     - MINOR: map/acl/dumpstats: remove the "Done." message
     - BUG/MEDIUM: sample: fix random number upper-bound
     - BUG/MEDIUM: patterns: previous fix was incomplete
     - BUG/MEDIUM: payload: ensure that a request channel is available
     - BUG/MINOR: tcp-check: don't condition data polling on check type
     - BUG/MEDIUM: tcp-check: don't rely on random memory contents
     - BUG/MEDIUM: tcp-checks: disable quick-ack unless next rule is an expect
     - BUG/MINOR: config: fix typo in condition when propagating process binding
     - BUG/MEDIUM: config: do not propagate processes between stopped processes
     - BUG/MAJOR: stream-int: properly check the memory allocation return
     - BUG/MEDIUM: memory: fix freeing logic in pool_gc2()
     - BUG/MEDIUM: compression: correctly report zlib_mem

There's no reason for rushing upgrades from 1.5.9 unless you're already
hit by one of these bugs, of course.

Usual URLs below :
     Site index       : http://www.haproxy.org/
     Sources          : http://www.haproxy.org/download/1.5/src/
     Git repository   : http://git.haproxy.org/git/haproxy-1.5.git/
     Git Web browsing : http://git.haproxy.org/?p=haproxy-1.5.git
     Changelog        : http://www.haproxy.org/download/1.5/src/CHANGELOG
     Cyril's HTML doc : 
http://cbonte.github.com/haproxy-dconv/configuration-1.5.html

While I have the microphone, let's give a few news about 1.6. A difficult
work has just been completed to support dynamic buffer allocation that
will be needed for HTTP/2 if we don't want to explode memory usage. It
has the nice side effect of dividing the memory usage by about 2.5 on
average, and by up to 10 by carefully tweaking buffer allocation (there
are two new tunables in the global section for this). I found that
aggressively limiting buffer count resulted in performance increase of
up to 18% simply thanks to the improved efficiency of the CPU cache :-)

The next step will be to be able to chain two series of buffers so that
we can receive multiplexed HTTP/2 frames into a buffer, and decode them
into a second buffer working in HTTP/1. I'm progressively getting a
picture of what it must look like but it's a huge work and each time I
try to simplify it to try to start small, it's even worse :-/ So in the
next few months, I expect to break things hard with a large hammer and
that things will stop working for several -dev versions (as we did
around 1.5-dev12 when reworking the connection layer).

In the mean time, I wish you all a happy new year!

Willy



Great work! Happy new year!

--
Best Regards,
Godbach

Reply via email to