Leap second problem

At the ends of the 2016 the new year’s eve was one second longer than usual because there was a leap second. Why this was done? Time is a little bit complex thing. There are leap years and leap seconds. A leap second is a one-second adjustment that is occasionally applied to Coordinated Universal Time (UTC) in order to keep its time of day close to the mean solar time, or UT1.

When you check current time on your computer, you’re seeing Coordinated Universal Time (UTC). Approximately 200 atomic clocks around the world are averaged together to make the representation of International Atomic Time (TAI). Leap seconds are added to keep international time in sync with solar time. Since 1972, there have been 36 seconds altered between TAI and UTC, all due to Earth’s slowing rotation. We need these UTC adjustments so that scientists, astronomers, and astronauts can stay in sync.

The Leap Second Problem

Adding a ‘leap second’ to the clock may cause computer problems. Leap seconds can cause issues because not all computer software can handle them correctly. Typically they do not cause major problems, but sometimes they can knock out some services. For example in summer 2012 After the last leap second, Reddit, the popular Internet discussion forum, went dark. There was Linux kernel bug at that time that caused that after leap second was added, CPU utilization sky-rocketed on many systems, taking down many popular sites.

When year 2017 began, Web firm Cloudflare was briefly caught out by the leap second added to the end of 2016 because a small number of the firm’s servers failed to handle the added second causing some web sites hard to reach. In a statement, Cloudflare said that its engineers had fixed the problem within 90 minutes of it affecting its servers. Clouldflare has published a report How and why the leap second affected Cloudflare DNS.

Why Leap Seconds Cause Glitches

How to handle leap second problem correctly

There are several strategies how how to avoid and migrate the problem with leap seconds. There are several techniques for that, and which method is most suitable depends on the application. With many applications there are no problems. Many big Internet properties have introduced a technique to adapt to the leap second change more gracefully and smoothly, called Leap Smear or Slew.  Here are some documents that describe several ways to handle the problem:

How and why the leap second affected Cloudflare DNS tells what went wrong at Clouldflare and how they plan to fix the problems in their systems.

Red Hat has published document Five different ways to handle leap seconds with NTP that gives good introduction how to handle leap second on NTP servers.

Resolve Leap Second Issues in Red Hat Enterprise Linux is a comprehensive guide on the 2016 leap second issue to prepare and prevent any problems or downtime while using Red Hat Enterprise Linux. Read it to prepare to the next leap second.

Don’t Let a Leap Second Leap on Your Database!  blog discusses how to prepare your database for the new leap second.

Internet SHUTDOWN – Google plans ‘leap second’ to avoid New Years Eve internet BLACKOUT article tells that dubbed “smeared time”, the US technology company detailed in a blog post how it plans to stretch-out 20 hours’ worth of seconds to build-up the additional time – instead of adding a single second on the evening of December 31st. How Computers Will Deal with 2016′s Leap Second by “Smearing Time” article tells that “Instead of adding a single extra second to the end of the day, we’ll run the clocks 0.0014% slower across the ten hours before and ten hours after the leap second, and “smear” the extra second across these twenty hours.” For more details read Google’s document Leap Smear.

Leap Second coming December 2016, already causing problems white paper tells that most legacy time synchronization software will accept a leap second when told to insert one without checking the validity of that command at all. The open-source community has seen the dangerous state of the current situation for over a year and
there does not appear to be a consensus approach. To avoid a repeat of the previous failures and service outages we recommend extensive testing before the leap second happens. Testing will give you some idea of what will happen.

Future of leap seconds

Leap seconds are added to our clocks to compensate for the Earth’s slowing rotation. However, some scientists propose abolishing leap seconds in the future, redefining the way we measure timeA discussion about this topic has been going on for a long time, but so far no agreement has been reached. Triggered by a questionnaire about Coordinated Universal Time (UTC) distributed by the IERS in 1999, scientists around the world began discussing the use of leap seconds. The scientific community has so far failed to reach an agreement on this topic (latest in 2015, the decision was again deferred to 2023).

Maybe we should drop the leap second as it might be causing more problems that it solves. We Should Drop the Leap Second Before It Causes Real Damage article tells that the trouble is: the world’s computers, often running on ancient software code, aren’t always configured to accommodate this extra second. And that can cause problems. Leap seconds have caused tremendous problems with IT systems in the past, and IT infrastructure is not always changing quickly. Maybe dropping the leap second makes sense.  There is a possibility that leap seconds will be abolished in the future.  The current plan is that the International Telecommunication Union (ITU) will decide at the World Radiocommunication Conference in November 2015.

 

2 Comments

  1. Tomi Engdahl says:

    Leap Second Testing
    http://support.ntp.org/bin/view/Dev/LeapSecondTest

    This page is a simple description of testing the leap-second implementation in NTP

    I’ll list all the necessary steps of setting up a test server with fake time for the following tests, all the commands are based on Ubuntu 12.04 LTS system and may differ from other distributions and/or systems.

    A test server can be simply simulated by setting up a NTP server and a file from NIST that describes all leap seconds. I use a pre-build ntpd from Ubuntu’s repo to simplify the commands, if a ntp-dev is needed, you have to compile it by own.

    The test I write for leap second is very simple, a 50-times loop is executed and check current system time every 100ms (using nanosleep() to set the time step), then out put the data of all the 5 seconds to a file.

    Reply
  2. Tomi Engdahl says:

    How to clear the Leap Second Insertion flag after it has been received?
    https://access.redhat.com/articles/199563

    While the RHEL kernel accepts a leapsecond for any month, ntpd in RHEL does not hand over the leapsecond in all cases. The ntp version ntp-4.2.4p8 sets the kernel leap bit only on end of June or December. The leap information will be forwarded to the clients on any day though. ntp Versions 4.2.6 and later set the kernel leap bit on end of any month, but require that a majority of its servers agree on the leap instead of only one as in 4.2.4 and before.

    NTP servers can issue a leap second at the end of any month.

    Reply

Leave a Comment

Your email address will not be published. Required fields are marked *

*

*