Software goes wrong, we all know that, but just how wrong can it go?
Read my list of bugs and vote for which you think is the worst!
Currently, the top 5 worst bugs are...
Place your vote and have your say.
Chronological bug list
Toyota recalls 160,000 Prius hybrid vehicles
Amid reports of vehicle warning lights illuminating for no reason and of gasoline engines stalling it emerges that the root of the issue isn't a hardware problem, it's a software programming error. 160,000 cars are recalled across the world a software patches applied.
The Toyota Prius is the world's first production hybrid (with a battery storage system and a fueled engine) vehicle. Read More
Mars Rover overload
January 21, 2004
Whilst operating on the surface of MARS, the NASA Mars Rover freezes due to too many files being open in its flash memory. Read More
Overdoses from the National Cancer Institute, Panama City
Therapy planning software created by the U.S. firm Multidata Systems International, allows the therapist to interactively 'draw' on a computer screen and decide upon the placement of metal shields designed to protect healthy tissue from radiation when being treated with a Cobalt-60 radiotherapy machine. A problem arises in that the software will only allow the placement of four shields and the doctors want to use five. To get around this they discover that they can draw only one block with a hole it in to get (what they believe) will be the same shielding effect. However, due to a bug in the software, if the hole is drawn in one way, the correct dose of radiotherapy is calculated, but if drawn in another way, a double dose is calculated and delivered. According to the International Atomic Energy Agency (IAEA) in 2001, at least five patients die and another 15 developed serious health problems as a direct consequence of the bug. The three doctors, who failed to double check the software calculations are charged with second-degree murder!
Whilst costing the world economy an estimated $300 billionRead More, to code around the lazy / economical (depending on your point-of-view) programming practice of storing the year portion of dates as two (99) rather than four (1999) digits, the most significant Y2K related failure was not the end of the western world as we know it, but rather the failure of the United States spy satellite system.
US Deputy Defense Secretary John Hamre said the satellites had continued to operate normally but that for two to three hours "we were not able to process information from that system."
Hamre had earlier stated: "The Y2K problem is the electronic equivalent of the El Nino and there will be nasty surprises around the globe."Read More
Ariane 5: Flight 501
June 4, 1996
Software code that was used for the Ariane 4 rocket is reused in Ariane 5. Ariane 5 has faster engines than Ariane 4 and this triggers a bug in the arithmetic routine of the flight computer. The error is in an algorithm that converts a 64-bit floating-point number into a 16-bit signed integer. The Ariane 5 engines cause the 64-bit numbers to be larger than previously seen in the Ariane 4, causing an arithmetic overflow Read More that leads to the flight computer crashing. The backup computer crashes and half a second later so does the primary flight computer. Without the flight computers the rocket's primary processor overpowers the engines which disintegrate 40 seconds after launch. BANG!
Ping and die!
1995 - 1996
Bugs in the IP fragmentation reassembly code make many operating systems crash when a malformed ping packet is sent to the machine. The most obviously effected are computers running Windows based operation systems, which freeze with the blue screen of death, however, the bug also affects Macintosh and Unix based systems so we can't blame it all on Bill.
An error in the silicon of the new Intel Pentium chip causes software errors when dividing floating-point numbers within a specific range. For example,
4195835.0/3145727.0 = 1.33374
NOT the correct answer 1.33382, an error of 0.006%.
In reality, the bug affects few users, but is a PR disaster. With up to 5 million defective chips sold, understandably, Intel is reluctant to replace faulty chips and offers to replace them for consumers who can prove that they need highly accurate output. Under public pressure, Intel eventually relents and replaces chips for anyone who complains. The eventual cost is $475 million.
Patriot-Scud tracking rounding error
February 25, 1991
On February 25, 1991 an Iraqi Scud missile evaded Patriot anti-missile defences and hit the Dhahran American Army barracks. The incoming missile was not detected because of a software flaw that prevented real-time tracking. At the root of the bug lay an inaccurate calculation of the current time, which had drifted some 0.36 seconds since booting, due to arithmetic errors. The missile was too fast and the system had been in use for too long (over a hundred hours instead of the planned for fourteen). The software was patched and recommissioned a day later. The missile strike left 28 dead and around 100 wounded.
AT&T Network Crashes
A new version of the AT&T long distance switch control software contains a bug that causes the switches to crash when they receive a specific crash recovery message from neighbouring machines. One of the switches in New York crashes and reboots, invoking the bug and causing a domino effect across the network. Eventually 100+ switches are crashing and rebooting every 6 seconds. 60,000+ people have no long distance service for up-to nine hours (a relief to those of us with verbose spouses). This is fixed by reverting to the original version of the software.
Kerberos Random(?) Number Generator
The Kerberos security system random number generator is improperly seeded and therefore the random numbers generated as part of the security algorithm are not truely random. For eight years it is possible to easily break into any computer that relies on Kerberos for authentication. The extent to which this bug was exploited is unknown.
The First Worm
November 2, 1988
1988 sees the 'birth' of the first internet worm (now know as the Morris WormRead More) which infects an unknown number of computers (best guess is 6,000) in less than a day. Its method of attack (although its author Robert Tappan Morris claims it was written to seek out the size of the internet not damage it) is buffer overflow Read More. The worm replicated itself, through know security weaknesses and quickly spawned multiple processes on machines, thus slowing them in some cases to a stand-still. The specific code is the gets() function in the standard C language IO library where it still remains to this day.
Therac-25 medical accelerator
The Therac-25 Medical Accelerator, a radiation therapy device, delivers lethal radiation doses at several medical facilities. Due to a software bug (a race condition Read More) in the Therac's operating system a quick-fingered typist could accidentally fire the machine in high-power mode with the metal X-ray target out of position, thus delivering lethal doses of radiation. Five patients die soon after treatment and others are seriously injured. Ironically, the faulty software sub-system was a replacement for the older Therac-20's electromechanical safety locks, a redesign made because software was seen as a more reliable solution.
Soviet gas pipeline
Central Intelligence Agency (CIA) operatives allegedly engineer a bug into a Canadian sourced computer system that was purchased to control the trans-Siberian gas pipeline. Allegedly, the Soviets had obtained the system under their cold-war efforts to steal sensitive U.S. technology. The CIA reportedly discovered the subterfuge and decided to sabotage the equipment to fail once in operation. The CIA suceeded in their sabotage - the resulting event is reportedly the largest non-nuclear explosion in history.
Mount Erebus disaster
November 28, 1979
Operated by Air New Zealand, Antarctic sight seeing flights provided a unique opportunity to experience the icy wilderness of Antarctica from the air. The ill-fated flight of November 28, 1979 crashed into the side of an the active volcano, Mount Erebus killing the 257 passengers and crew on board. The cause of the crash eventually transpired to be a combination of flying in a white-out at just 445 metres and the fact that the Air New Zealand Flight Operations Centre had changed co-ordinates on the plane's navigation computer without telling the crew. Read More
Mission control destroys Mariner 1
July 28, 1962
A bug in the flight software of the Mariner 1 rocket causes it to divert from its launch path. Mission control is forced to destroy the rocket over the Atlantic. The subsequent investigation reveals that a formula written on paper in pencil was improperly converted into computer code, causing the computer to miscalculate the rocket's trajectory and the course deviation is large enough to cause alarm. A wrong character in a line of code leads to the destruction of a $18,500,000 vehicle.
To quote Arthur C. Clarke - "The most expensive hyphen in history."
The original BUG!
A moth in panel F, relay 70 of the Harvard Mark II system claims it's place in history as the first computer bug. The computer was running a test of its arithmetic unit when the engineers noticed something was wrong. The moth was removed and taped into the computer's logbook with the words: "first actual case of a bug being found".
Types of bugsThey're out there so make sure you know how to recognise, name and shame them...