Brian,
The ntpd daemon does not use Unix timers in any way except to implement
a recurring one-second interrupt which defines process time. All other
time values are based on either advancing or retarding the system clock
by some amount. The two functions are kept ruthlessly separate and
independent. Process time advances one second at a time whether or not
the system time is set back one hour by some means separate from ntpd,
but eventually ntpd will set it forward again.
I don't understand how POSIX can implement a time of day function using
timers. Timers operate in process time or system uptime; there is no way
to synchronize them to an arbitrary epoch determined from an external
source.
Dave
Brian Utterback wrote:
David L. Mills wrote:
Sivakumar,
In the reference implementation that leaves here, packets are sent
regardless of whether the time has been set forward or backward. In
the kernel implementation that leaves here, time is always
monotonically increasing except when explicitly set backward more than
two seconds. This may not account for various modifications by folks
after the code has left here.
Right, and as the poster said, the clock was inadvertently set back
a hour.
This is an unfortunate side effect of the fact that POSIX timers are
used both for strict interval timing and synchronized to a clock
timing, and that POSIX is silent about what to do when the clock
is set backwards.
There is no clear "right thing" to do. If you are using interval
timing, you will likely want one thing, and if you are using
synchronized timing, then you will want the other.
The ntpd daemon actually handles this by resetting the timers
when it steps the clock backwards, but it is in a unique
position to know about backwards steps, and then only when
it does them itself.
So, the only way for ntpd to proctect itself against this kind
of problem is the time honored rule: Only ntpd may adjust the
clock. Really, we mean it.
_______________________________________________
questions mailing list
[email protected]
https://lists.ntp.isc.org/mailman/listinfo/questions