Handling Leap Seconds the OpenBSD Way
undeadly.org
undeadly.org
http://cr.yp.to/proto/taiclock.txt
I am just a dumb user. I use clockspeed (sntpclock, clockadd and clockview) with a short list of compatible servers I consider "reliable". As far as I can tell, it works.
NTP doesn't seem to use the human-readable format for its timestamps though. My 30 second skim says it uses a variation on epoch time that extends from Jan 1 1900 rather than Jan 1 1970. UNIX epoch time inserts the leap second by waiting until 1 second after midnight and then jumping the counter back 1 second (which corresponds to a long 0th second rather than a long 59th second, but whatever, in spirit you are right) [1].
I see two potential sources for error: a 1s correction/drift proving to be "too much" for synchronization in a system that typically sees corrections or drifts far smaller, or 2. a well-meaning fool writes assert(s<=59) in some code that touches a correctly-handled UTC stamp during the leap-second :-)
Finally, if you are one of the exceedingly
few people for whom the clock being off by
a second actually matters, then I'm pretty
sure you also know how to deal with it.
One alternative to NTP is PTP.[1] Quoting: IEEE 1588 is designed to fill a niche not well
served by either of the two dominant protocols,
NTP and GPS. IEEE 1588 is designed for local
systems requiring accuracies beyond those
attainable using NTP.
[1] https://en.wikipedia.org/wiki/Precision_Time_ProtocolI've apparently been doing that wrong for years. Thanks!
What it the NTP server is running openBSD? =P
(not sure if this question makes sense... Anyway, it seems some OS has to worry about leap seconds...)
It's not as precise the ISC ntpd, but normally "good enough".
Weird that a security-centric OS would be cavalier with time when some cryptosystems are time-sensitive.
Your clock is almost certain to be a little of every now and again anyway. If it wasn't there would be no point in running ntp.
Also, as stated in the article:
> Finally, if you are one of the exceedingly few people for whom the clock being off by a second actually matters, then I'm pretty sure you also know how to deal with it.
I would be interested to hear if anyone has examples to share about those systems :)
The only time people would care that I'm aware of would be if the grid drooped at that exact time and one was trying to do analysis around that. Otherwise they are just doing things real time as they happen and time tracking is not necessarily involved except for logging.
Anyway I frequently run into timeseries trending clients that cannot handle displaying daylight saving time transitions correctly let alone hope that they handle leap seconds correctly.