Hi all,

things are getting way better. Today haproxy.org has been served by the
latest master all the day, with all knobs turned on (HTX, H2, compression,
caching, server pools and connection reuse). Some very likely noticed
several outages. I'm sorry for this but at some point when it starts to
become impossible to trigger any bug, code has to go into production for
a better exposure and variety of issues.

It looks like the cause is always the same, the 15 cores indicate haproxy
died from a broken list in the HTX-specific cache code. The issue is rare,
the process kept working for up to two hours. For now I'm disabling the
cache to try again, I want to stress HTX a bit further. If it's the only
issue left, it won't stop me from releasing, I'll just put a big yellow
and red sticker on it to warn about the shock hazard :-)

I still have a few minor stuff in my mbox to apply (some cosmetic updates
to the master-worker CLI, a few regtests, some option name adjustments and
some adjustments to the connection pools management). I still have a bit
of clean up to do (rename some flags and callbacks that are confusing),
and if we manage to get haproxy.org to work reasonably stable this week-
end, it will be a sign that we can release it.

This week I discussed with a few people and came to the conclusion that
we should switch http-reuse on by default, but in safe mode, and server
pools as well. The reason these ones remained off by default till now
was mostly historical and due to the fact that 15 years ago it was
critical to close all the time and avoid keep-alive to save server
resources. Things have changed a lot nowadays, all servers support
keep-alive, some expect to get multiplexed connections, and I can't
imagine what users would think if they enable H2 to the server and see
it connect and disconnect all the time without multiplexing streams!

Given that at this point we're emitting a technical version which people
should be careful with at the beginning, it's probably the best moment
to switch reuse and pools on by default with very conservative levels.
This way all users who don't know what to tune will benefit from them,
and those who care about fine details will still be able to adjust the
behaviour using the various options.

OK enough talking, let's get back to the code, stay tuned!

Willy

Reply via email to