[LEAPSECS] presentations from AAS Future of Time sessions

Warner Losh imp at bsdimp.com
Thu Jan 16 10:03:59 EST 2014



On Jan 16, 2014, at 7:23 AM, Poul-Henning Kamp wrote:


> In message <EAD2CFB1-799E-4BC9-9A68-80AAD893E485 at batten.eu.org>, Ian Batten wri

> tes:

>

>> It would be interesting to know what proportion of computers

>> 1975--2000 had their clocks aligned to within +/- 22 seconds of

>> anything, such that ignoring leap second was anything other than

>> a second-order effect.

>

> As a first order approximation:

>

> Number of computers with correct clocks pretty much follows the

> fraction of computers running something better than Win98 and

> connected to the net by non-dial-up means.


I think the answer for 1970-1990 is that most of them were aligned to local time (even if the system ticked in virtual UTC/GMT time) with sub-minute accuracy. Time alignment started to matter as more computers were networked together to work cooperatively on problems. Starting in the mid 1980's with things like the VAXcluster, which had its own time alignment protocol, you see more attention paid to this problem. ntp and similar protocol adaptation during the late 80's was driven by the rollout of NFS servers and Unix workstations. Time was slaved in the cluster to one local server (in more primitive protocols like timed, it was just set once a day), rather than aligned to UTC from a national lab. Getting slots on stratum 1 servers was hard, unless you knew somebody, and stratum 2/3 servers were often worse than picking a local system due to the extreme variance in round trip times on the net at the time. So long as the time more or less matched the time on the wall, the radio, etc life was good.

It was during the early 1990's when the ntp stratum1 and stratum2 networks became sufficiently built out that people started connecting to them and using them to get sub-second accuracy on their system times. But since leap seconds were rare, and UNIX hadn't moved into real-time control to any large extent, the bugs in the leap second implementations went unnoticed or were papered over with an automatic slew or some manual adjustment depending... While many Unix kernels did implement Dave Mill's ntp leap second engine in their kernels, the quality of the implementation varied widely, and bugs lurked. I fixed one bug in FreeBSD that had been in the system literally for 6 years (introduced in 1998 just before the great leap second pause (but not in a release until after it), fixed 2nd half 2005) due to other, unrelated changes in the timing system.

Once leap seconds started back up again in 2006, 7 years had passed in the computing world, and life had changed. Unix was being used in realtime systems that needed and cared about leap seconds. Many deployed systems got the leap second wrong on 2006, and more people started caring. Too bad that caring didn't translate into bug free code because as recently as the last leap second in 2012 there were bugs that "crashed" the Linux kernel when a leap second happened...

Warner




More information about the LEAPSECS mailing list