Hi Vincent,

On Fri, Mar 19, 2021 at 11:50:24PM +0100, Vincent Bernat wrote:
>  ? 19 mars 2021 17:34 +01, Christopher Faulet:
> 
> > HAProxy 1.6.16 was released on 2021/03/19. It added 71 new commits
> > after version 1.6.15.
> 
> 1.6 was EOL last year, I don't understand why there is a last release.

There were some demands late last year and early this year to issue a
last one with pending fixes to "flush the pipe" but it was terribly
difficult to find enough time to go through the whole chain with the
other nasty bugs that kept us busy.

> Both 1.6 and 1.7 are marked for critical fixes but many fixes are pushed
> in it. The risk is to introduce a late regression in this last version.

There's always such a risk when doing backports unfortunately and it's
always difficult to set the boundary between what is needed and what
not. A lot of the issues I'm seeing there are crash-related, and
others address not-so-funny recent changes in compilers behaviors
leading to bad code generation. There are also some that were possibly
not strictly necessary, but then they're obvious fixes (like the one
on the timer that's incorrectly compared), and whose possible
consequences are not always trivial to imagine (such as checks looping
at 100% CPU every 24 days maybe depending on the tick's sign).

Ideally, with enough time, older versions should be released a bit more
often, but we also know that reality doesn't always match the ideal case,
and that old versions are rarely upgraded in field :-/

But with this in mind, there were two options:
  - not releasing the latest fixes, leaving those on 1.6.15 facing
    occasional issues with their issues ;
  - releasing 1.6.16 with all latest fixes to grant a bit more time
    to 1.6.15 users to migrate, knowing that in case of a regression
    there, they could roll back to 1.6.15 and finish exactly in the
    same situation as #1 above.

As such I think it's always preferable to publish the available fixes
because in the best case it helps those facing issues, and in the worst
case the situation remains exactly the same in case of regression.

Last point, a final version also allows to update the version string to
mention that it's the last version (this entry didn't exist in 1.6 but
it seems to have helped with 1.9 as we're not seeing reports anymore).
It's important when the production management is share between several
persons (typically a contractor is in charge of some updates). It then
helps those less aware of maintenance cycles to figure that they're
using something outdated.

With this said, maybe you or anyone else has better suggestions to
propose for old versions that we could try for 1.7 and then 1.8. This
is a tough job and good ideas are always welcome especially if they
result in less effort and better quality.

Cheers,
Willy

Reply via email to