CoursePython from Scratch to Intermediate · Module 4: Decisions and Loops · part 31 of 75
Part 31 · Module 4: Decisions and Loops

Incident: One extra second made servers spin

8 min read·14 Oct 2026
Module 4 · Incident file · About 30 minutes

What happened

END OF 30 JUNE 2012, UTC 23:59:58 23:59:59 23:59:60 00:00:00 the extra second a normal day 86,400 seconds 30 June 2012 86,401 seconds
A leap second (amber, the unusual value) makes the clock show 23:59:60 before midnight, so 30 June 2012 had 86,401 seconds.

Clocks around the world keep UTC, Coordinated Universal Time, the world's reference clock, which computers keep in step with. The Earth's spin is slightly irregular, so now and then UTC adds a leap second to stay in step with it. Instead of going from 23:59:59 to 00:00:00, the clock shows one extra second, 23:59:60. That day has 86,401 seconds instead of the usual 86,400.

One leap second was added at the end of 30 June 2012. It triggered a bug in the way Linux, the operating system that runs most web servers, handled time. Processes on affected machines began to spin: they used the processor at full power while doing no useful work. Several large websites had outages (widely reported, July 2012).

leap second 23:59:60 UTC Linux time bug clocks disagree processes spin full CPU sites down several large no error message at any step
One extra second set off a time bug (amber), processes spun and websites went down (red), and no step raised an error.

No program crashed with an error message. Each one kept doing exactly what its code told it, round after round, as Lesson 3's date loop did on the last day of a leap year. That is why the failure was hard to see from inside the program, and why it belongs in a module about loops.

The rest of this part opens with an account

Signing up is free and takes one email. Nothing to pay, and nothing renews.