1 – The “Moth-er” of all bugs
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.
2 – The Y2K bug
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.
4 – Feet or meters? The Mars Climate Orbiter nav bug
Planned trajectory -vs- Actual trajectory
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
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 similar 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.