[ntp:questions] How should an NTP server fail?

David L. Mills mills at udel.edu
Tue Jun 15 03:22:47 UTC 2010


Kasper,

Thanks for that, but it would be easier using the debug trace. Yours was 
the key evidence that led to the solution, but the smoking gun was not 
the number of ones in the reach register..

The contraption was working correctly, but the tally code was incorrect 
when the reach register was zero. I chased this down and found a most 
bizarre cause. The problem occurs when there are no selectable samples 
in the clock filter when the last bit is shifted out of the reach 
register. In your tests and mine there have been at least two selectable 
samples in the clock filter; but, depending on the sort order, there 
could be one or none. I fixed the problem in the development version.

I would like to emphasize two points. First, the problem extended only 
the the tally indicator and the program was otherwise working correctly. 
Second, the contributions of others not on the bugs list was vital for 
the solution. And, in fact, this particular hazard has existed since 1992.

Dave

Kasper Pedersen wrote:

> On 06/11/2010 04:47 PM, David L. Mills wrote:
>
>> My scenario did include the condition of eight valid sample before
>> pulling the plug The first missed poll response did result in one
>> MAXDISPERSE sample in the filter, but that is completely irrelevant. The
>> point is the poll routine calls clock_select() for every poll sent when
>> the last four samples in the reach register are missing, so it is
>> guaranteed that the server be marked down after that.
>
>
> For entertainment value, 'ntpq cartoons' with 4 samples, and 8 samples:
>
> At 2 minutes after pulling the plug, there is a difference.
>
> 4:
>  10.5.5.254  10.5.5.16   2 u    1    8    1    0.284   -0.294   0.000
>  10.5.5.254  10.5.5.16   2 u    1    8    3    0.340   -0.217   0.078
>  10.5.5.254  10.5.5.16   2 u    8    8    7    0.285   -0.121   0.140
> *10.5.5.254  10.5.5.16   2 u    3    8   17    0.286    0.044   0.265
> *10.5.5.254  10.5.5.16   2 u    9    8   36    0.286    0.044   0.265
> *10.5.5.254  10.5.5.16   2 u   17    8   74    0.286    0.044   0.265
> *10.5.5.254  10.5.5.16   2 u   24    8  170    0.286    0.044   0.265
> *10.5.5.254  10.5.5.16   2 u   33    8  360    0.284   -0.294   0.224
> *10.5.5.254  10.5.5.16   2 u   43    8  340    0.284   -0.294   0.224
> *10.5.5.254  10.5.5.16   2 u   49    8  300    0.284   -0.294   0.224
> *10.5.5.254  10.5.5.16   2 u   61    8  200    0.284   -0.294   0.224
> *10.5.5.254  10.5.5.16   2 u   64    8    0    0.285   -0.121   0.135
> *10.5.5.254  10.5.5.16   2 u  158    8    0    0.286    0.044   0.000
> *10.5.5.254  10.5.5.16   2 u  337    8    0    0.286    0.044   0.000
>
> 8:
>  10.5.5.254  10.5.5.16   2 u    3    8    1    0.294    2.971   0.000
>  10.5.5.254  10.5.5.16   2 u    1    8    3    0.295    3.434   0.463
>  10.5.5.254  10.5.5.16   2 u    1    8    7    0.288    3.092   0.256
> *10.5.5.254  10.5.5.16   2 u    2    8   17    0.277    3.141   0.198
> *10.5.5.254  10.5.5.16   2 u    2    8   37    0.277    3.141   0.200
> *10.5.5.254  10.5.5.16   2 u    4    8   77    0.277    3.141   0.186
> *10.5.5.254  10.5.5.16   2 u    3    8  177    0.277    3.141   0.182
> *10.5.5.254  10.5.5.16   2 u    1    8  377    0.277    3.141   0.224
> *10.5.5.254  10.5.5.16   2 u   11    8  376    0.277    3.141   0.304
> *10.5.5.254  10.5.5.16   2 u   18    8  374    0.277    3.141   0.304
> *10.5.5.254  10.5.5.16   2 u   27    8  370    0.277    3.141   0.304
> *10.5.5.254  10.5.5.16   2 u   36    8  360    0.277    3.141   0.306
> *10.5.5.254  10.5.5.16   2 u   43    8  340    0.277    3.141   0.334
> *10.5.5.254  10.5.5.16   2 u   49    8  300    0.278    2.932   0.317
> *10.5.5.254  10.5.5.16   2 u   58    8  200    0.283    2.750   0.443
> *10.5.5.254  10.5.5.16   2 u   67    8    0    0.283    2.750   0.409
> *10.5.5.254  10.5.5.16   2 u   73    8    0    0.283    2.750   0.178
>  10.5.5.254  10.5.5.16   2 u   82    8    0    0.283    2.572   0.000
>  10.5.5.254  10.5.5.16   2 u   88    8    0    0.283    2.572   0.000
>  10.5.5.254  10.5.5.16   2 u   94    8    0    0.283    2.572   0.000
>  10.5.5.254  10.5.5.16   2 u  104    8    0    0.283    2.572   0.000
>
> As to whether this difference means anything, I will let others decide.
>
> The above is 4.2.7p34. Also tested on 4.2.4p7. Spaces were shortened
> to fit.
>
>
> /Kasper Pedresen
>
> _______________________________________________
> questions mailing list
> questions at lists.ntp.org
> http://lists.ntp.org/listinfo/questions




More information about the questions mailing list