Hello,

I got a report of a crashed process for 1.3.17 on x86_64 from Yan Qiao at
Rocket Fuel Inc, who kindly provided me with the core. The first one in
all those years! It was caused by a missing initialization of a variable
which is never touched... until the struct has exactly the same size as
another one and both can share their pools. In practise, building 1.3.17
for x86_64 on Red Hat Enterprise 5 with default options makes your struct
session exactly 1024 bytes. If you did so, you don't risk anything until
you log with option httplog and you get very large requests which fill
your logs and overwrite the field itself.

The solution is to upgrade to 1.3.18 which I have just released. It also
fixes the longstanding issue of the old process which sometimes does not
dies after a soft reload, since I had the opportunity to catch one at
t20.com and attach a debugger to it to find the reason : calling free()
from a signal handler is not a good idea at all...

I'd like to thank the persons with whom I could work on both issues in
their respective environments. It's always much faster when you can get
a core or plug a debugger on a live process !

That said, there are several other minor changes. The stats are now more
readable, report max session rates and provide full 64-bit counters everywhere,
so that larger sites will not see their session counters roll over every few
days anymore. You know who you are :-)

It is now possible to forward invalid requests or responses without blocking
them, but they will still be captured, allowing seamless application debugging.
The config parser now warns about possibly unwanted ordering of ACLs or
reqxxx/rspxxx. Several wrong printf() format strings have been fixed on error
messages, they were wrong mostly on 64bit. The build process now supports an
alternative architecture, and the RPM spec file has been cleaned.

The new header hashing LB algorithm from Benoit Plessis has been merged with
minor syntax changes for better future convergence with ACLs. I also merged
Maik Broemme's patch to add the original destination IP address in the
X-Original-To header.

And last but not least, the doc has been massively cleaned up and reorganised
for better readability and navigation. It also includes a summary at the
beginning.

All users of 1.3.17 are invited to upgrade. I have also released 1.3.15.9
and 1.3.14.13 with all pending fixes (all minor). I believe these 2 versions
will be the last ones in their respective branches, after 12 and 18 months
of maintenance. That means that if a major problem surfaces, I'll fix them,
but they won't receive any more minor fix.

As usual, you can fetch source, linux/x86 and solaris/sparc binaries here :

   http://haproxy.1wt.eu/download/1.3/

As a side note, some of you might have noticed that I'm far less responsive
these weeks. I'm currently moving to a new flat and that takes a lot of time.
Basically all my evenings and week-ends are devoted to packing my junk in
boxes and visiting stores to buy minimal furniture. So don't feel sad if I
don't reply to your mails, I have nothing against you :-) Prefer posting to
the mailing list instead of me, because you have more chances to get a quick
response there.

Regards,
Willy


Reply via email to