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@lists.ntp.org
http://lists.ntp.org/listinfo/questions
_______________________________________________
questions mailing list
questions@lists.ntp.org
http://lists.ntp.org/listinfo/questions