GithubHelp home page GithubHelp logo

Comments (5)

Tristan971 avatar Tristan971 commented on June 2, 2024

Digging a bit more, this seems like it's also been reported a long time ago here (in 1.5) https://haproxy.formilux.narkive.com/WkdV7fGj/abstract-namespace-sockets-handling

from haproxy.

wtarreau avatar wtarreau commented on June 2, 2024

I think I'd be OK with changing the default at least because as you say it looks like the rest of the ecosystem has chosen that option, but we need to be sure not to break the old one. If some users have already padded their addresses in their servers to receive connections, or have passed the option to socat, it will suddenly stop working. Or maybe we should just create a new family that is not padded (e.g. abns2) ? After all that's the point of using different address families, we're in some sort changing the address family here. BTW, I was also concerned with the risk that some older kernels might possibly not support this, but I checked, and in kernel 2.1.131 it already used the advertised size so from this point that's OK.

from haproxy.

Tristan971 avatar Tristan971 commented on June 2, 2024

Agreed on both points; as you'll see on the ML, I took a tunable approach as I'm sure some people manually tweaked their other programs already.

As for changing the default, I'd certainly not complain either :)

Or maybe we should just create a new family that is not padded (e.g. abns2)

I considered that too, but in the end I figured that it's a bit overkill for a niche-enough feature vs a tunable that changes the default value, especially with how many bind families already exist

from haproxy.

lukastribus avatar lukastribus commented on June 2, 2024

I agree with the non-invasive patch on the ML.

Changing the default on the other hand will break old configurations, configurations that have been in active use, otherwise those previous conversations wouldn't have come up on the issues tracker and mailing list in the first place.

So yes, I'd say changing the default behavior of the abns@ address family prefix is not possible.

If the goal is to end up with a abstract namespace address family that doesn't default to zero padding, then we will have to deprecated the abns@ address family entirely for one LTS cycle or two along with the introduction of new address family prefix.

from haproxy.

Tristan971 avatar Tristan971 commented on June 2, 2024

So yes, I'd say changing the default behavior of the abns@ address family prefix is not possible.

While I don’t think it’s mandatory, I don’t agree that it’s impossible or even undesirable.

It’d be reasonable enough to add a notice, which is then increased to a warning in a subsequent release, until a changing-default release.

That said, no matter the default, HAProxy will have to support changing behavior in perpetuity, like socat does and the proposed patch enables.

As for the default, I’m honestly neutral in the way to go because I think it’s advanced and niche enough that:

  • no change: requiring a flag forever for « new » behavior is an okay cost
  • change: requiring a flag be added to revert to « old » behavior not changed for 10 years is also ok

In both cases, the specifically affected crowd can honestly just « deal with it ». And that includes me if it doesn’t change.

But I don’t like the idea that known-suboptimal defaults are to be kept in software for BC alone.

They accumulate over the years, and then you end up with something like MySQL, where you absolutely need 30 lines of boilerplate config to get to a not-insane set of defaults.

That said, I don’t think the default value here is particularly good or particularly bad, and both seem acceptable to me. So this is more philosophical than on-topic… :)

from haproxy.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.