[ntp:questions] Re: Servers just doen't work (after followingthe troubleshooting page)
mayer at gis.net
Sat Oct 1 02:02:49 UTC 2005
David Schwartz wrote:
> "Danny Mayer" <mayer at gis.net> wrote in message
> news:433B65DC.4070103 at gis.net...
>>David Schwartz wrote:
>>> Right. And this is a Linux-specific bug, caused by the way NTP
>>>decides what interfaces to bind to *on* *Linux*.
>>That's actually an incorrect assessment. There is no Linux specific code
>>in that area of the code. It does have to do with the way Linux responds
>>to certain network function calls that used to result in it using the
>>wildcard socket. This no longer happens in the recent releases of the
>>development version. If it does it's a bug.
> No, the assessment is correct. If Linux responds differently to network
> calls but the code that could fix that difference contains no Linux-specific
> code, you wind up with a Linux-specific bug.
That's exactly what I said. What you are saying is that we need to add
O/S specific code to work around a problem with the O/S.
The new code gets rid of all that so it's no longer an issue.
>>We cannot be responsible for what Redhat or any other vendor does with the
> That is true, but RedHat had to do something to fix the problem.
> However, changing the behavior of a flag to its opposite was probably a bad
> choice. Changing the default and adding a new flag to get the default back
> would have been better.
>>> Of course, but that's broken design. The effect of listening on
>>>"virtual IPs" or what constitues a virtual IP is a platform-specific
>>>thing. The flag should specify what NTP does, not how it does it. If it's
>>>going to be a platform-specific flag, it should be carefully arranged so
>>>that specifying *no* platform-specific flags gets you as close to the
>>>same behavior on all platforms.
>>The effect of -L is to listen on just the first IP address of the network
>>hardware interface for each interface that it encounters. So if you have
>>an eth0 and an eth1 interface it will use just the first address of eth0
>>and the first address of eth1. It will always use the loopback addresses,
>>no matter what you specify.
>>It is NOT a platform-specific flag. If vendors use it for other purposes
>>then we cannot do anything about that. You can always use the reference
>>implementation can get what you need.
> It is a platform-specific flag if the *effect* of binding to virtual
> interfaces is different on different platforms.
> For example, suppose that NTP had code on FreeBSD to correctly determine
> the target address even if the socket was only bound to the wildcard address
> but there was no such code on Linux. The *effect* of not binding to virtual
> addresses then would be very different on Linux than it is on FreeBSD. So
> while the flag does the same internal thing to NTP, it has vastly different
> effects on different platforms.
> The meaning of an option is what effect it has, not what internal detail
> it changes.
> That's why it is nonsense to say things like "NTP, by default, binds to
> <all/no> virtual interfaces". That is a technical internal detail, and if
> that same detail results in different effects, then NTP is broken. NTO
> should provide the same effect, by default, on all platforms. If it has to
> do different things to get the same effect because Linux responds
> differently to some network functions, then it should do those different
> things by default. Otherwise, it has a Linux-specific bug.
> In any event, I'm glad to hear that NTP now does provide the same
> behavior by default on all platforms. Thanks for the good work.
That was true before I touched the code. I started to work on it during
development of 4.2.0.
> questions mailing list
> questions at lists.ntp.isc.org
More information about the questions