The story around Leap Seconds and Windows: It’s likely not Y2K
Today I woke to a number of hair-on-fire press articles decrying the coming and dreaded Leap Second… with the mainstream USA Today calling out…
“But last time it happened, in 2012, it took down much of the Internet. Reddit, Foursquare, Yelp and LinkedIn all reported problems, and so did the Linux operating system and programs using Java.”
Not quite correct: IIRC, although some may’ve succumbed to bugs noted in Wired, several popular Internet services (including some of those mentioned) went off line due to a serendipitous and unfortunately timed power outage that impacted their service provider as chronicled by the BBC.
So, why isn’t Windows mentioned?
Glad you asked.
As I noted a couple of years ago, you'll find more documenting the impact of a leap second in heartwarming Knowledge Base article “How the Windows Time service treats a leap second” and (excerpted) for everyman by the well-read and Michael Kaplan. Essentially, after the leap second occurs, the NTP client that is running Windows Time service is one second faster than the actual time. This time difference is resolved at the next time synchronization.
"In short, W32Time does not account for a leap second being dependent on the NTP server. Most applications and services may be unaffected, but sysadmins and IT professionals should know that the leap second is not addressed until the next time sync following the official addition/ subtraction of the leap second.
As The Telegraph noted, "Many computing systems use the Network Time Protocol, or NTP, to keep themselves in sync with the world’s atomic clocks." As called out on the Windows site with instructions on How to Set the Clock, you can sync your device clock with an Internet time server of your choice to help ensure your device’s clock is accurate. Typically time is updated once a week (when connected to the Internet - who isn't?), or the clock sync may be managed by your administrator (with domain joined devices). As a user, you probably won't notice the extra second nor see any impact to your Windows devices.
In addition to the historical blog record in the Windows Time Service blog, more articles/ information in which you may be interested:
- An excellent article on maintaining sync to the Windows Time Service on a domain (aka Domain Sync) from Ryan Sizemore on the aforementioned blog at http://blogs.msdn.com/w32time/archive/2007/09/04/keeping-the-domain-on-time.aspx
- Instructions on how to use the NIST Internet Time Service (ITS) with computers: http://tf.nist.gov/service/pdf/win2000xp.pdf
- More details on the leap second from the US Navy’s Time Service Department: http://tycho.usno.navy.mil/leapsec.html
Generally, consumers have nothing to worry about when it comes to this non Y2K event. IIRC, the concept of a leap second is actually in question, and an ITU working group has debated whether or not adding/subtracting leap seconds should be discontinued (as noted here). We’ll see what 2015 brings. Or January, 2038 for that matter.
BTW, a few additional notes today from my associate and venerable time lord Matt Johnson…
“It may be worth noting a couple of things from a developer’s perspective:
- Most applications do not handle leap seconds, as their time structures only allow seconds numbered to 59 – not to 60.
- Most applications do not care about this, as they will never receive a leap second from the system clock – even when one occurs.
- Most applications have to cope with minute time adjustments to the system clock for a variety of other reasons anyway – so leap seconds are no different. Consider that clock drift does occur, and is often corrected by NTP sync – so it’s not abnormal for an app to receive timestamps out of sequence.
- Depending on implementation, sometimes a system just won’t observe the leap second at all, but that just means its clock will be off by one second until the next NTP sync.
- Even when the leap second is observed perfectly, it only affects code that needs to be precise to sub-second accuracy. Consider how the clock will tick over an observed leap second when you observer it by tenths of a second: 23:59:59.8, 23:59:59.9, 00:00:00.0, 00:00:00.1
“So it usually doesn’t cause a problem unless you are timing things less than a second in duration, or if you are re-sorting events that occur in high frequency.”
Also available at https://t.co/8ZVoch44QO