bk99.de entertain the web since 1997

Farewell to the leap second: UTC runs without jumps from May 2027

Summary

The General Conference on Weights and Measures (CGPM) decided in Versailles that Coordinated Universal Time (UTC) will run without leap seconds from 20 May 2027 and may drift up to one hour from Earth’s rotation. The trigger was the looming first negative leap second, which experts put at a 30 percent probability by 2035 and which has never been applied. This post explains why leap seconds have knocked servers offline, how Google and others smear them, and what operators of NTP, chrony and radio clocks should know now.

What was decided

The 28th General Conference on Weights and Measures met from 13 to 15 October 2026 at the Palais des Congrès in Versailles. Votes there are cast by states, each member state having one vote; according to the Guardian, delegates from 69 countries voted. On 15 October the conference adopted seven resolutions; the decisive one for timekeeping is Resolution 5, “On the technical actions needed to ensure the continuity of UTC”.

Resolution 5 sets two things: a continuous UTC takes effect on 20 May 2027, and the maximum value for the difference between UTC and Earth-rotation time UT1 will be 3,600 seconds, i.e. one hour. According to the wording of the resolution, this is meant to keep UTC continuous “for several centuries”. In 2022 the conference had already decided in Resolution 4 to raise the limit “in, or before, 2035”, without naming a new value. The new decision brings the date forward by eight years and names the number.

Radio services that broadcast the value UT1 minus UTC get a transition period: in 2023 the ITU World Radiocommunication Conference set out in Resolution 655 that old equipment which cannot be replaced earlier may continue to be served until 2035, at the latest 2040. ITU Working Party 7A is studying a new transmission code for this.

Two time scales: atomic clock and Earth’s rotation

Since 1967 the second has been defined via caesium-133: 9,192,631,770 periods of the radiation of a specific transition in the atom. From the world’s atomic clocks, the International Bureau of Weights and Measures (BIPM) computes International Atomic Time, TAI. UTC ticks at the same rate as TAI but differs from it by a whole number of seconds. Since 1 January 2017, UTC has been 37 seconds behind TAI.

UT1, on the other hand, follows Earth’s actual rotation, measured among other things with radio telescopes that use extremely distant black holes as fixed points. Earth is a poor clock: tidal forces from the Moon and Sun slow it down over the long term, while the atmosphere, ocean currents, melting ice and mass shifts in Earth’s interior make the length of day fluctuate. According to Smithsonian Magazine, 14 October 2026 lasted 24 hours and 0.6471 milliseconds.

To keep both scales in step, an ITU rule applies (Recommendation ITU-R TF.460-6): when the difference UT1 minus UTC approaches 0.9 seconds, the International Earth Rotation and Reference Systems Service (IERS) in Paris announces a leap second. It is inserted at the end of 30 June or 31 December; the last minute then has 61 seconds and ends with 23:59:60. This has happened 27 times so far, most recently on New Year’s Eve 2016.

Why a single second takes servers down

Computers do not know 23:59:60. Unix time counts seconds since 1 January 1970 without leap seconds, so every day there has exactly 86,400 seconds. When a leap second is inserted, the Linux kernel therefore steps the system clock back by one second at 00:00:00 UTC, so the last second runs twice.

On 30 June 2012 this went wrong. The kernel held the system time back for a second, but the internal time bases of the high-resolution timers (hrtimers) were not adjusted. From then on, all timers expired one second early; timers with less than one second to run expired immediately, recurring timers were re-set and expired immediately again. This loop caused the load spikes that LWN.net described under the title “Leaping seconds and looping servers”; the fix was a call to clock_was_set() that had been removed from the leap second code in 2007. Reddit and LinkedIn went down, and Qantas flights were delayed.

On 31 December 2016, the most recent leap second, Cloudflare’s DNS service was hit. The Go service RRDNS measured response times with time.Now(), a clock that was not monotonic at the time. When time jumped back one second, a negative duration resulted, the smoothed average became negative, and the function rand.Int63n() panicked. Cloudflare named the root cause as the belief that time cannot go backwards. The fix consisted of a single character.

Smearing instead of jumping

Since 2008 Google has not applied leap seconds as a step but has spread the extra second over many hours: every second becomes minimally longer. According to The Conversation, this took about 20 hours in 2008. Today Google recommends a linear 24-hour leap smear from noon to noon UTC; it applies to all Google services including Google Public NTP, and Amazon uses the same method in AWS.

The price: during the smear, such servers deliberately do not show UTC. At the start of the leap second, smeared time is just under 0.5 seconds behind UTC, at its end just under 0.5 seconds ahead. The chrony documentation therefore warns that clients must only use servers that smear in exactly the same way. Resolution 5 explicitly names these inconsistent methods as a problem: they lead to timing differences between systems, do not conform to the SI second, and some organisations might switch entirely to a satellite time such as GPS time. That put the role of UTC as the single shared reference at stake.

The negative leap second tipped the balance

For some years Earth has been spinning faster than expected, so no leap second has been needed since the end of 2016. A workshop of the Consultative Committee for Time and Frequency (CCTF) and the IERS estimated in March 2025 that the probability of a negative leap second is rising quickly and will reach about 30 percent by 2035. UTC would then have to skip a second: 23:59:58 would be followed directly by 00:00:00.

This has never been tested. Resolution 5 speaks of a high risk for largely unprepared critical infrastructure and estimates the industry’s preparation effort to be similar to that for the year 2000 problem. Patrizia Tavella, director of the BIPM Time Department, told Scientific American that the users consulted considered even a 10 percent risk too high. Experts remained divided: Michael Wouters of Australia’s National Measurement Institute considered the negative leap second less dangerous because time jumps forward, while Darryl Veitch of the University of Technology Sydney countered that untested software remains untested.

The link is not cut completely, it just becomes very loose. Without leap seconds, UTC slowly runs away from Earth’s rotation. According to ABC, Earth currently loses less than a second per year, so reaching the one-hour limit could take more than a millennium. Christian Bizouard, director of the IERS Earth Orientation Center, told the Guardian in essence that a leap hour is so far off that the decision is merely being postponed.

In everyday life the offset does not matter. Resolution 5 itself points out that time zones and daylight saving time already separate civil time from local solar time by more than an hour in many countries. Astronomy, geodesy and satellite operations are affected: anyone who needs UT1 must in future obtain the value UT1 minus UTC explicitly from satellite navigation messages, from the IERS or from national metrology institutes. In the past the United Kingdom had reservations because of the Greenwich tradition, and Russia because of its GLONASS satellite navigation system.

What administrators should take away

According to IERS Bulletin C 72 of 6 July 2026, there will be no leap second at the end of December 2026. The next possible date would be the end of June 2027, which is after 20 May 2027. It follows that the leap second of 31 December 2016 was very probably the last one ever.

The file leap-seconds.list, which Debian ships with tzdata 2026c under /usr/share/zoneinfo, expires on 28 June 2027. chrony can read it with the leapseclist directive to detect leap seconds and to know the offset between TAI and UTC. However, chrony only sets the kernel’s TAI offset if leapsecmode system is also in effect. On a Debian 13 machine running systemd-timesyncd, CLOCK_TAI returned the same value as the normal system time in our check, i.e. not TAI.

The PTB’s DCF77 radio clock signal announces a leap second one hour in advance with bit 19 (A2). Anyone running receivers, NTP servers or their own time logic does not need to rebuild anything after the decision. The lesson from 2012 and 2016 still applies, though, because NTP corrections, daylight saving time or a wrongly set device also make the wall clock jump: durations belong on a monotonic clock.

Ideas

  • UTC runs on without leap seconds from 20 May 2027.
  • UTC may in future drift up to one hour from Earth’s rotation.
  • The leap second of 31 December 2016 was very probably the last one.
  • A negative leap second was never applied and was seen as an incalculable risk.
  • Large providers smeared leap seconds and deliberately deviated from UTC while doing so.
  • Durations are measured with monotonic clocks, never with wall-clock time.

Insights

  • The deciding factor was not astronomy but whether UTC survives as a shared standard: when large providers run their own variants of time, official time loses its purpose.
  • Software rarely fails because of time itself but because of assumptions about it: every minute has 60 seconds, time only moves forward. Leap seconds tested these assumptions every few years, and in 2012 and 2016 they failed.
  • Civil time has always been only loosely coupled to the Sun. Time zones and daylight saving time shift it by more than an hour, whereas a deviation of a few seconds per century is negligible.

Facts

  • Since 1967 the second has been the duration of 9,192,631,770 periods of the radiation of a transition in the caesium-133 atom.
  • Since 1 January 2017, UTC has been 37 seconds behind International Atomic Time TAI (IERS Bulletin C 72).
  • Between 1972 and 2016, 27 leap seconds were inserted, each at the end of June or the end of December.
  • Until now a leap second was inserted when the difference UT1 minus UTC approached 0.9 seconds.
  • DCF77 announces a leap second one hour in advance with bit 19 (A2).

References

Critique

  • Many headlines, including Golem and the Guardian, speak of an introduced leap hour. Resolution 5, however, only sets the permitted deviation of 3,600 seconds; whether and how UTC will be corrected when this limit is reached is not regulated.

Remarks

  • The same conference postponed the redefinition of the second via optical clocks to 2030 (Resolution 4): the best optical clocks are up to 100 times more accurate than the caesium definition, but there is no consensus yet on the atomic species.
  • Resolution 6 starts work on lunar time: for navigation on the Moon, the conference considers the Lunar Coordinate Time (TCL) of the International Astronomical Union suitable and requires that lunar time be traceable to UTC.

Recommendations

  • Keep tzdata up to date and check the expiry date: grep expires /usr/share/zoneinfo/leap-seconds.list.
  • If you need real TAI, for example for PTP or measurement systems: run chrony with leapseclist and leapsecmode system and check CLOCK_TAI against the system time.
  • In your own code, measure durations with CLOCK_MONOTONIC or time.monotonic() and catch negative differences.
  • If you need UT1, for example for astronomy or antenna tracking, obtain the value UT1 minus UTC from the IERS instead of using UTC as an approximation.

Read the original article (German)

Search the Web Archive