The 5 Most Infamous Software Bugs in History

In the digital era, computer bugs can affect our lives, the economy of a nation and even the well-functioning of society in general. As the internet of things gradually invades all aspects of our environment, the importance of identifying and preventing computer bugs grows exponentially.

These are 5 infamous software bugs that went down in history:

1 – The “Moth-er” of all bugs

BBVA-OpenMind-ventana-primer-bug-ppal

The first bug (Source: Naval Historical Center Online Library Photograph)

After finding a moth inside the Harvard Mark II computer on September 9th, 1947 at 3:45 p.m., Grace Murray Hopper logged the first computer bug in her log book. She wrote the time and the sentence: “First actual case of bug being found”. Nowadays, the term “bug” in computer science is not taken literally, of course. We use it to talk about a flaw or failure in a computer program that causes it to produce an unexpected result or crash.

You may already be familiar with this story, but is it really true…?

2 – The Y2K bug

bug02

1999 was a great year for tabloids and sensationalist newspapers

In the last century, software developers had never thought that their code and creations would survive into the new millennium. For this reason, many assumed that writing “19” before the variable “year” was an unnecessary waste of memory. Most decided to omit these two digits.

All good until the turn of the century: the closer we got December 31st, 1999,  the more we started worrying about the fact that computer systems in New Year’s Eve would update their clock to January 1st, 1900 instead of 2000 and, because of this, major disasters would be unleashed and it would be the end of mankind.

However, we are still here to tell the tale: nuclear missiles were not fired on their own, planes did not fall from the sky and banks did not lose all the information about their clients’ savings.

The Y2K bug was real, nevertheless. Billions of dollars were spent in order to upgrade computer systems worldwide. Also, some small incidents were reported: In Spain, some parking meters failed. The French meteorological institute published on its website the weather for January 1st 19100 and in Australia, some bus-ticket validation machines crashed.

3 – The Dhahran Missile

In February 1991 (First Gulf War), an Iraqi missile hit the US base of Dhahran in Saudi Arabia, killing 28 American soldiers.

Following an investigation, it was determined that the base’s antiballistic system failed to launch because of a computer bug: the Patriot missile battery, whose role is to detect and intercept enemy missiles by “crashing” against them in mid-air, had been running for 100 hours straight. After every hour, the internal clock drifted by milliseconds and that had a huge impact on the system (a delay of  of a second after 100 hours).

For a person, 0.33 seconds is an infinitesimal amount; but for a radar that tries to track an Al Hussein Scud missile –  that reaches Mach 4.2 (1.5 km per second / 0.88 miles per second ), this “micro-delay” translates into a “600 meter” error. In the case of the Dhahran incident, the radar first identified an object in the sky but didn’t manage to track it due to the error, and thus, the missile didn’t launch itself.

patriot infography

4 – ¿Feet or meters? The Mars Climate Orbiter nav bug

bug03

Planned trajectory -vs- Actual trajectory (Source: Wikimedia)

The Mars Climate Orbiter was launched in 1998 with the goal of studying climate on Mars, although it never managed to fulfill its mission.

After traveling through space for several months, the probe was destroyed because of a navigation error: teams who controlled the probe from Earth used parameters in imperial units meanwhile the software calculations were using the metric system. These miscalculations had an impact on the flight path. In the end, the probe was destroyed because of friction with the Martian atmosphere (an error of almost 100 km).

5 – Too many digits for Ariane 5

bug04

370 million dollars worth of fireworks because of a software bug. (Source: ESA)

When coding, a developer has to define variables the program will use and also the size those variables will take in the computer’s memory. The amount of memory required by the variable is expressed in bits.

A 16 bits variable can have a value of −32.768 to 32.767.

On the other hand, a 64 bits variable can have a value of −9.223.372.036.854.775.808 to 9.223.372.036.854.775.807 (that’s almost an infinity of options).

On June 4th, 1996 and only 30 seconds after the launch, the Ariane 5 rocket began to disintegrate slowly until its final explosion. Simulations with a similiar flight system and the same conditions revealed that in the rocket’s software (which came from Ariane 4), a 64-bit variable with decimals was transformed into a 16-bit variable without decimals.

These variables, taking different sizes in memory, triggered a series of bugs that affected all the on-board computers and hardware, paralyzing the entire ship and triggering its self-destruct sequence.

Bonus – BSOD during the Windows 98

Bill Gates and thousands of people witnessed the famous BSOD (Blue Screen of Death) live in the presentation of Windows 98.

Abdallah Aberouch for OpenMind
@aberouch