Software bugs and programming errors aren’t uncommon. In most cases, they lead to downtime, disruption, or even a brief loss in revenue before they can be rectified. However, there have been several cases where slips of the finger and programming oversights resulted in catastrophic consequences. From ill-fated space endeavours to Cold War mishaps, let’s take a look at just a few of the most notable software blunders the world has ever seen.
North American Blackout
In 2003, bad luck combined with a software bug triggered a power outage that affected over 50 million people across the United States and Canada. It all started with a local blackout caused by heavy power lines getting tangled into tree branches. This original power disruption was more or less unavoidable, but a bug in the network’s control software resulted in a race condition – a scenario when two or more operations simultaneously compete for the same resource when in fact they need to be executed in a sequence. As a result of the bug the system froze and failed to alert operators who were then unable to redistribute power over the network. In the end, the outage took several days to recover from and wreaked havoc on several major metropolitan areas, including New York City.
The ‘Y2K Bug’
How could anyone forget the Y2K bug? As the result of shortsightedness and frugal coding, many computer systems before the year 2000 employed a two-digit variable to represent the year. Under this system, 1998 and 1999 was denoted as ‘98’ and ‘99’ respectively, while in the year 2000 this value would roll over to ‘00’.
The fear was that many computers would interpret ‘00’ as 1900 rather than 2000, thus disrupting all calculations involving years.
The media at the time branded it the ‘Y2K bug’ and it became the biggest story of 1999. Though predictions that the world would descend into chaos once the clock struck midnight on December 31st, 1999 didn’t come true, organizations around the world did end up spending billions of dollars throughout the late 1990s to rectify the error.
In December 2011, German software developer Robin Seggelmann accidentally unleashed the now infamous Heartbleed Bug onto the world (see Top IT Security Breaches of 2014). Affecting OpenSSL, an encryption protocol used by millions of websites to protect all manner of sensitive information, the bug hid in plain sight for over two years before it was discovered. In an interview with the Sydney Morning Herald, Seggelmann said, “In one of the new features, unfortunately, I missed validating a variable containing a length”. Reviewers belonging to the OpenSSL community also failed to catch the error and in programming terms it was actually fairly trivial. However, this one small mistake inadvertently allowed access to private encryption keys, giving hackers the ability to decrypt data (e.g. credit card numbers, account numbers, etc.) transmitted between website users and servers. The error wasn’t discovered until 2014, prompting websites around the world to update their encryption protocols to protect billions of users.
Mars Climate Orbiter
If you thought software bugs were limited to planet Earth, think again. They can pop up in space too. Launched in December 1998, the Mars Climate Orbiter was sent to study the climate on the surface of Mars and cost NASA $327 million dollars to develop. At first, the missions seemed to be going according to plan. That all changed on day 286 when the orbiter was meant to descend down to Mars. The Lockheed Martin-provided ground software employed pound-seconds instead of Newtown-seconds in its thruster calculations. The result? The orbiter entered Mars at the wrong trajectory and disintegrated.
Soviet Union’s Early-Warning Satellite System
There were a lot of tense moments during the Cold War, one of which came courtesy of a software glitch. Sitting in a secret bunker at Serpukhov-15, Lt. Col. Stanislav Petrov of the USSR saw the Soviet Union’s early-warning satellite system go off one late night in September 1983. According to the Washington Post, the alarm alerted that ‘five Minuteman intercontinental ballistic missiles had been launched’.
Luckily for humanity, Petrov had a funny feeling that this was a false alarm and reported is as such. In doing so many believe that he prevented World War III. Petrov’s gut feelings, as it turned out, were right. No missiles had been launched by the US and further investigation of the incident revealed that the false alarm was all due to a programming error. Apparently the software the Soviet’s employed incorrectly interpreted the reflection of sunlight on clouds as missiles. Talk about a close call.
For most of us in the industry, it’s unlikely we’ll ever encounter such catastrophic software bugs over the course of our careers. These blunders, however, do serve as a reminder of how impactful software systems can be, and how important software testing is.