History

The Y2K Bug: Was It a Hoax or a Quiet Success?

Two-digit years threatened computers in 1999. The millennium passed quietly, but only after years of costly repair work. What happened and what it taught.

By Zebra Hosting Cloud

As 1999 ended, many people stocked up on bottled water and cash, and governments formed emergency committees. The reason was a design shortcut made decades earlier: storing years as two digits. On 1 January 2000, the fear went, computers would treat 00 as 1900 and fail in unpredictable ways. When the day came, very little went wrong. That fact has led many people to call Y2K a hoax. The truth is more interesting.

Where the bug came from

In the early decades of computing, memory and storage were extremely expensive. Programmers saved space wherever they could, and writing a year as 74 instead of 1974 saved two characters on every record. It was a sensible decision at the time, and nobody expected the programs to survive for decades. But software that works tends to stay in use. By the 1990s, banks, insurers, utilities, governments and manufacturers were still running programs, some of them written in COBOL in the 1960s and 1970s.

The problem was real. A program that calculates someone's age, or checks whether a payment is overdue, by subtracting two-digit years would get nonsensical results when the current year was 00. Dates also influenced sorting, scheduling and expiry checks, so errors could spread from one system to the next.

Why it was hard to fix

  • Nobody had a complete list of the software they ran.
  • The source code for old programs was often lost, or the people who understood it had retired.
  • Date logic was scattered through programs in many forms.
  • Hardware, such as embedded chips in equipment, also contained date handling, and some could not be updated easily.

The deadline, in contrast, could not move. Every organisation faced the same date.

The scale of the response

Through the second half of the 1990s, companies and governments carried out inventory, testing and repair programmes. Programmers rewrote date fields, used techniques such as windowing, which interprets two-digit years within a range, and tested systems by setting the clock forward. In the United States, a presidential council coordinated efforts across agencies, and governments around the world set up their own programmes. The total cost across the world is often described as very large, though published estimates differ widely.

International coordination was also significant. Because power grids, telecommunications and trade all cross borders, organisations shared information about which products were affected and which were safe.

What happened on 1 January 2000

There were minor problems. A US Naval Observatory website displayed the year as 19100 for a time, a classic case of a program that printed 19 followed by a year counter of 100. Some monitoring equipment at a Japanese nuclear power plant produced an alarm that was not safety-critical, and some other systems around the world showed incorrect dates. No widespread collapse of power, banking or transport occurred.

Countries that spent less on remediation also had few problems, which critics cite as evidence that the threat was overstated. Defenders reply that the situations were not comparable, since the more heavily computerised economies had more at stake, and since smaller systems often had much simpler software. Most people who worked on the problem believe the quiet outcome was the result of the work done, not of an absence of risk. Both views contain some truth, and it is hard to run the experiment again.

The human side

One reason Y2K was so effective as a story is that it was easy to understand. Everyone could picture a computer confused about the year. Yet the real work was patient and unglamorous: reading old code, building test environments, scheduling downtime and checking supplier by supplier whether their equipment was ready. Many of the programmers pulled out of retirement to help with legacy systems said that the project taught their organisations more about their own software than anything before. It was, in a sense, the largest software audit ever carried out.

It also shows a communication problem that every security team knows. When prevention works, nothing visible happens, and the effort looks wasted. A quiet result is a poor way to win credit, but it is often the best possible outcome.

The problems that remain

Y2K was one instance of a general class of date and time bugs. The next well-known one is the Year 2038 problem. Many systems store time as a signed 32-bit count of seconds since 1 January 1970. That counter reaches its maximum on 19 January 2038, and then wraps around to a negative number. Modern 64-bit systems avoid it, but old embedded devices and software may not.

Leap years have caused their own failures over the decades, and expiring certificates routinely break services when they are forgotten.

The lesson for site owners today

Y2K was a lesson about technical debt: small shortcuts that are cheap today and very expensive later. Websites accumulate this kind of debt in the form of old plugins, abandoned themes, unsupported PHP versions and forgotten scheduled tasks. The cost of dealing with them rises as the software ages and the people who set it up move on.

  1. Keep a simple inventory of what your site depends on.
  2. Check that your PHP version and your CMS are still supported.
  3. Let SSL certificates renew automatically, and monitor their expiry.
  4. Test updates on a copy before applying them to your live site.

The hosting plans overview shows the available options.

Staying current

Plesk makes it simple to see which PHP versions are in use and to change them site by site. If your site runs on an old setup and you are not sure how to move it, our free migration service can help, and the hosting plans overview shows what is available.