facebook rss twitter

Adding a leap second this year is expected to cause Internet woe

by Mark Tyson on 8 January 2015, 10:50

Tags: Google (NASDAQ:GOOG)

Quick Link: HEXUS.net/qacnnb

Add to My Vault: x

The International Earth Rotation and Reference Systems Service (IERS) has announced that in order to keep terrestrial clocks in sync with the fluctuation of astronomical time, in this case to allow the Earth's spin to catch up with atomic time, it is going to be adding one second to the clock on 30 June 2015. Whilst most people wouldn't even notice 2015 being a second longer than usual, this extra second is expected to cause problems for the infrastructure powering the Internet, reports Phys.org.

The decision to add leap seconds to years are surprisingly frequent, as the spin of the Earth is slowing down, losing approximately two thousandths of a second every day. The reset has happened 25 times since their introduction in 1972, when leap seconds were initially added at least once a year. The rate of adding seconds has slowed since 1979 and back then, the action went literally unnoticed.

However, adding leap seconds in the recent past has created issues for significant parts of the Internet, with sites and services including Foursquare, Reddit, LinkedIn and Yelp all reporting incidents the last time a leap second was added back in 2012, as a result of the time discrepancy. The Linux operating system and programmes using Java also faced problems, and issues are said to only get more serious as more and more computers and servers are sync up with atomic clocks.

Google anticipated the problem last time and created a smart update called "smear around" which modified its servers to use a bit of extra time every time they were updated over the course of the year, and as a result prevented them from noticing that the leap second has ever occurred. The company has announced that it would use the same technique this year, and other sites with the same amount of engineering resources as Google may follow, after seeing Google's success in beating leap second chaos.

Due to the disruption it can cause, the US wants to get rid of the leap seconds entirely, but others, including Britain, have opposed the change as it would eventually lead to the end of Greenwich Mean Time that is measured by the sun, and would no longer be accurate. We are expecting to see an outage or two when 30 June arrives, nevertheless, though we hope that it will not cause has much destruction as it did the last time around as websites and tech companies should be more prepared.



HEXUS Forums :: 9 Comments

Login with Forum Account

Don't have an account? Register today!
The linked article says “Nowadays, however, adding a leap second—which is scheduled to occur at 23:59:59 on June 30 (the halfway point of the year)—can cause computer systems to become confused when their clock shows 60 seconds, rather than rolling over after 59—and we all know what that generally means—outages. Other computers will show the 59th second for two seconds in a row, which can also cause problems.” Instead, why not just set the clock back by 1 second once we're a a couple seconds into July? You know, like we do with daylight savings when we're an hour in or whatever? Websites seem to deal with that ok don't they? I don't get why this is a big deal…
ZaO
The linked article says “Nowadays, however, adding a leap second—which is scheduled to occur at 23:59:59 on June 30 (the halfway point of the year)—can cause computer systems to become confused when their clock shows 60 seconds, rather than rolling over after 59—and we all know what that generally means—outages. Other computers will show the 59th second for two seconds in a row, which can also cause problems.” Instead, why not just set the clock back by 1 second once we're a a couple seconds into July? You know, like we do with daylight savings when we're an hour in or whatever? Websites seem to deal with that ok don't they? I don't get why this is a big deal…

Setting the clock back a second is what causes it to show 59 for 2s, which to some software might be confusing, say an action requires something to happen for 10s between 50-59 secs, stopping when it flips to 00, when there is a leap second that task runs for 11 seconds.
There are two kinds of problems, the COBOL style problem, and the duration problem.

The COBOL one, only effects really dumb programmers, so brace yourselves if you've got JS or PHP. Here someone treats a date, not as a number, but as a series of symbols (called a ‘string’ as they are symbols strung together). They then trigger something happening when the last 2 symbols equal something else. This is bad. Those responsible should be shot and their children shot.

You have the duration one, which is a bit more tricky, most systems measure time in the number of seconds (or fractions of a second) elapsed since a specific point in time (called an epoch). This is just a big number, computers like big numbers, and this of course doesn't change, as it's still 100 seconds ellapsed, regardless if you show 59 or 60, because the number ellapsed is obviously true.

However, sometimes people will calculate a duration, durations mean these seconds ellapsed have to be mapped to the time as we know it. If ever you needed any kind of proof that god isn't real, work with date and time, so one person might have the leap second in their lib, someone else, not. Will one second matter in this case? For most things, no. For things that really care about one second, they use time since an epoch anyway.
kingpotnoodle
Setting the clock back a second is what causes it to show 59 for 2s, which to some software might be confusing, say an action requires something to happen for 10s between 50-59 secs, stopping when it flips to 00, when there is a leap second that task runs for 11 seconds.

Timing a duration you would use a monotonic clock not wall clock time, or at least you should. And there lies the problem, summer time hits us twice a year, leap seconds are not common enough to be well tested against.

I would have thought that most modern code runs on virtual machines where the clocks are so wonky that an extra second turning up would be casually accepted.
There will be an implosion, reality will cease to exist and be destroyed by the software erratum of 0 !!!

Listening to Bob marley until the End of…