Re: [chrony-dev] chronyd not recovering after time stepped.

[ Thread Index | Date Index | More chrony.tuxfamily.org/chrony-dev Archives ]


On Fri, Aug 28, 2015 at 04:49:07PM +1200, Bryan Christianson wrote:
> > I think I figured it out. When the time is stepped there is a big spike in offset_sd. This causes the drift removal interval to be increased to a very large value (aprox 2 hours in the trace I just looked at) and then applied when the current drift cycle completes.

Ok. That explains it.

> > So for the next 2 hours, clock adjustments in start_adjust() are having a predicted offset of 30 ms or so. When the very long drift removal interval expires, then things go back to normal - offset_sd is now small and the system rapidly recovers.
> > 
> > I think the drift removal cycle should be restarted if the newly calculated interval is significantly different from the value of current_drift_removal_interval
> > 
> 
> Alternatively, and much simpler, we set an upper bound on drift_removal_interval of say 200sec

I like the former better. Would it make sense to always restart the
timer in set_sync_status() instead of waiting for the currently
running one to expire? I guess it would simplify the code a bit, but
there would be an extra adjtime() restart on every clock update. I'm
not sure if it's worth it.

-- 
Miroslav Lichvar

-- 
To unsubscribe email chrony-dev-request@xxxxxxxxxxxxxxxxxxxx with "unsubscribe" in the subject.
For help email chrony-dev-request@xxxxxxxxxxxxxxxxxxxx with "help" in the subject.
Trouble?  Email listmaster@xxxxxxxxxxxxxxxxxxxx.


Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/