Collection of Software Bugs
Prof. Thomas Huckle
Institut für Informatik
TU München
huckle@in.tum.de
Last modified: November/8/2005
0. Heisenberg effects in Software and Computer Science
Probe effect and debugging: The probe effect is an alteration in the frequency
of run-time computational errors observed when delays are introduced into
concurrent programs
See Debugging massively
parallel programs, and the literature therein.
Heisenberg effect and monitoring: By collecting information to analyse target
system behavior, one is altering that very behavior
Online Monitoring: A Tutorial, page 3
Heisenberg effect in computer arithmetic:
MATLAB example
of Prof. W. Gander, ETH
Heisenbugs, Bohrbugs and related effects:
1,
2,
Bruce Lindsay, 4
Heisenberg effect in user observation:
panopticon, Hawthorne,
Heisenberg effect
1. Ariane 5, Explosion
(data conversion of a too large number, 1996)
2. Pentium Prozessor, Division Algorithm
(incomplete entries in a
look-up-table, 1994)
3. Patriot-Scud
(rounding error, 1991)
4. Mars Climate Orbiter, Loss
(Mixture of pounds and kilograms, 1999)
5. Green Party Convent fails
(By rounding error and erronous use of Excel
the wrong number of delegates is computed, 2002)
6. NASA Mariner 1 , Venus probe
(period instead of comma in FORTRAN
DO-Loop, 1962)
Mariner software bug is now considered to be an
urban legend, see 1 2 3
7. AT&T long distance service fails for nine hours
(Wrong BREAK
statement in C-Code, 1990)
8. Phobos 1, Russian Mars Probe
(Wrong command leads to rotation,
1988)
9. Euro Conversion
(Rounding errors)
10. Airbus downing during Iran-conflict
(Pattern recognition software,
1988)
11. False alarm in Soviet early-warning monitoring system
(Pattern
recognition, 1983)
12. USS Yorktown
(Input and Division by '0', 1998)
13. Radio Telescope VLA, calibration
(rounding error, 1990-1995)
14. ROSAT-Bug
(Rounding/processing error in ROSAT observations,
1998)
15. Sleipner Offshore Platform
(Sinking caused by the wrong use of
FE-code NASTRAN, 1991)
16. London Millenium Bridge, wobbling (compare Tacoma Bridge)
(Simulation fails because of wrong estimates for
pedestrian forces, 2000)
17. Thunderstorm "Lothar" in South Germany, Dec./26/99
(Weather
Prediction fails because of ignored outlier data)
18. Vancouver Stock Exchange Index
(Rounding Error, 1983)
19. Elections in Scheswig Holstein/Germany
(Rounding lifts the Green
Party from 4.97% to 5.0%, 1992)
20. Voyager 2
(Wrong Starting Estimate of Uranus mass in Iteration, Data
Compression, 1986)
21. Shut down of Nuclear Reactors
(Use of wrong norm in CAD system, 1979)
22. 180 Degree Bugs:
23. Falkland Exocet
(Argentinian (French-friendly) Exocet sinks British
H.M.S.Sheffield, 1982)
24. Mars Sojourner, Pathfinder
(Unwanted Restart, 'Priority Inversion', 1997)
25. Railway Signal Box Altona, Germany
(not enough memory, 1995)
26. Denver Airport
(Computerised Baggage Handling fails, 1995)
27. Distributed denial-of-service attacks (2000)
28. Bayerische Oberlandbahn (Bavarian private railway)
(Elektronic Bugs:
Air conditioning, doors,.., 1999)
29. Clementine Space Mission (NASA + Strategic Defense Initiative
Organization, funded and operated by the Ballistic Missile Defense Organization
'Starwars')
(malfunction of computer, firing of control thruster,
1994)
30. ISS International Space Station
(Computer bugs)
31. Voting Technique and Elections Machines
(Florida Voting Chaos)
32. Therac-25, X-ray
(Overdosing patients during radiation,
1975-1987)
33. Sound System German 'Bundestag', December 1992: 1, 2, 3
34. Wall Street Crash, October 1987
(Acceleration of the crash)
35. ATM gives any amount of Euro for arbitrarily PINcode
(Programming
glitch on the occasion of the switch-over from DM to Euro, 2002)
36. Reverse Thrust: Unknown reason!
(Avoid Crash by Reverse Thrust
--> Lufthansa crash in Warsaw 1993)
37. Friendly Fire
38. MS Word
(Encrypted information on documents)
39. Ozone Hole ignored until 1985
(Software had to set aside data points that deviated greatly from expected
measurements)
40. Sinking of the Zenobia
(Failure
of the computerized ballasting system, 1980)
41. Swedish fighter plane Gripen
(Flight control software causes crash, 1989)
42. AOL software causes customer to dial '911'
43. Toll Collect: Problems with toll billing system for trucks based on GPS and GSM
44. Power blackout NY 2003:
45. Airplane disasters:
46. Railway disasters:
47. Space Disasters:
48. Great Concert Disasters:
49. Tacoma Bridge (not a computer bug)
(collapse, 1940)
50. Railway Bug (not a computer bug, 1992?)
After reunification the
originally double-tracked line
between Eichenberg - Arenshausen (near Kassel
and Erfurt)
should be restored with only one track.
Two building sites
start in Hessen and in Thüringen.
Both groups built the'right' track!
Newsgroup: de.etc.bahn.eisenbahn, October 1999
Additional
Stories
51. Y2K
52. Software Testing:
2. Pentium Processor:
A bug in the floating point unit
(FPU) of the Pentium II and the Pentium Pro processors, also known as the
Pentium II and Pentium Pro FPU bug or the flag erratum (as it is referenced by
Intel). This bug occurs with operations that convert floating point numbers into
integers (compare also Ariane-5 explosion).
2. Pentium Processor:
Calculator applet in Windows gives
wrong answers (1991), see Don't use the calculator
.
4. Mars Climate Orbiter
'The recent crash of the Mars
Orbiter was the direct consequence of unbelievably bad numerics done by the
contractor who supplied a navigational instrument to NASA for the spacecraft.
That instrument computed its output, using Imperial units!!! And nobody at NASA
noticed that there was anything odd about the output of that instrument, until
the inquest which followed the crash.' (Garry J. Tee)
'Actually, it was
a mixture of pounds and kilograms. Lockheed was sending small-force events to
JPL in pound-second units, but the contract had specified Newton-second units,
and that was what the JPL software expected.
It wasn't really a software
error in the classical sense -- both programs performed according to their
specifications. It was a validation error: Lockheed had built the wrong program
correctly.' (Van Snyder)
SDI laser experiment 1985 failed because
computer data was in nautical miles instead of feet, see 31.
Gemini
V missed landing point, because program ignored motion of the earth around the
sun, see 27.
6. NASA Mariner 1
Mariner 18 lost due to missing NOT
in program, see 5/2
14. ROSAT-Bug
In 1991 a group in Mancester working in
Radio Astronomy anounced the first discovery of a planet outside of our solar
system. One year later it turned out that they had an error in the formula of
the motion of the earth around the sun.
15. Sleipner Offshore Platform
A new ferry named
Sleipner sank in autumn '99; Norwegians should avoid the name
'Sleipner'.
Sleipner is a name from Viking mythology, namely the eight legged
horse of Odin, see Norwegian
History.
17. Thunderstorm "Lothar", Berliner Morgenpost,
27.1.2000
Kaum ein Lueftchen regte sich am zweiten Weihnachtsfeiertag des
Jahres 1999 am Bodensee. Nur das Barometer an der Wand deutete Ungewoehnliches
an: Der Luftdruck sackte in den Keller, als waere das Geraet hoffnungslos
defekt. Genau so hatte auch das Prognoseprogramm des deutschen Wetterdienstes
reagiert, als in der Nacht zuvor automatische Messgeraete meldeten, der
Luftdruck ueber der Biskaya sei innerhalb von drei Stunden um zwanzig
Hektopascal gesunken. Ein solch rascher Abfall aber war in dieser Weltgegend
noch nie registriert worden. Deshalb tat das Programm etwas sehr Logisches: Es
interpretierte den extremen Luftdruckabfall als Messfehler - und ignorierte ihn.
Die Wettervorhersage fuer den 26. Dezember warnte dann nur vor
Windgeschwindigkeiten bis zu 90 Kilometern in der Stunde. ......
22. 180 Degree Bugs:
Torpedos, that deviate more than
90 degree, explode to avoid self destruction of the ship. Once upon a time a
ship fired a torpedo but the torpedo was jammed in the tube. Then the captain
gave the command: Let's turn around and return to the harbour!
44. Railway Bug
Inverse Story: One track of the
line Rostock - Schwaan had to be pulled down and brought to Russia after World
War II as reparation; on both sides they pull down the right track!
Shifted
Story: Building a railway line from Austria to Germany in the last century; at
the meeting point there is a difference in altitude of 0.8 m, because Germany
refers to the North Sea and Austria to the Mediterranean Sea.
9. Euro Conversion
1 EURO = 1.95583 DM --> 0.01 DM =
0.01 Euro and 0.01 EURO = 0.02 DM
35. ATM, Sueddeutsche Zeitung, 09.01.2002:
Glückspilz
mit Geldsegen ohne Geheimzahl
Manche Zeitgenossen ohne Zahlengedächtnis
mögen sich in den vergangenen ersten Tagen des neuen Jahres als Glückspilze
gefühlt haben: Ganz ohne Geheimzahl konnten Postbank-Kunden mit ihrer Sparcard
bis Montagabend unbegrenzt Geld abheben. Das bestätigte Unternehmenssprecher
Hartmut Schlegel: «Aufgrund eines Softwareproblems konnten bei allen anderen
Geldinstituten außer der Postbank selbst mit beliebigen Pincodes Euro abgehoben
werden, ohne dass das Sparkonto mit der abgehobenen Summe belastet wurde.»
Zwar habe die Postbank bereits in den ersten Tagen des Jahres den Fehler bei
der Ende Dezember neu installierten Software bemerkt. «Da das Schadensrisiko aus
unserer Sicht minimal war, haben wir den Fehler korrigiert, ohne das System für
unsere Kunden zu sperren. Gegenwärtig wissen wir nur von einem einzigen Fall in
Hamburg, wo der Softwarefehler zufällig entdeckt wurde. Der Betroffene muss das
abgehobene Geld zurückgeben», so Schlegel weiter. ....
5. Green Party Convent fails, Stuttgarter Zeitung,
25.2.2002:
Parteitag platzt wegen eines Computerfehlers .....
Die
Auszählung dauerte lange. 201 Delegierte hatten ihre Stimme abgegeben. Die
Satzung begrenzt die Zahl der Vertreter der Basis aber auf 200....
Bei
genauer Betrachtung ist zwei plus zwei eben drei, Stuttgarter Zeitung,
26.6.2002:
Von Rainer Klüting und Renate Allgöwer
... Was bei der
Einladung zur Wahlversammlung der Grünen passiert ist, hätten die grünen Rechner
im Anfängerkurs an der Volkshochschule lernen können. Excel, so lernt man dort,
kann krumme Zahlen auf dem Bildschirm gerundet anzeigen. Beim Runden wird aus
der Zahl 1,5 eine 2. Die 2 erscheint am Bildschirm, aber intern merkt sich Excel
die krumme Zahl. Addiert man nun zwei solcher Zahlen, dann macht Excel aus 1,5
plus 1,5 korrekterweise 3. Am Bildschirm aber ist zu lesen: 2 plus 2 ist 3.
So oder ähnlich muss es passiert sein. Die Grünen hatten 200
Delegiertenplätze zu vergeben. Um die 47 Wahlkreise möglichst gerecht zu
berücksichtigen, wird deshalb die Mitgliederzahl eines Wahlkreises durch die
Gesamtzahl der Mitglieder im Land geteilt und dann mit 200 malgenommen. Dabei
kann herauskommen, dass Wahlkreis A 1,5 Delegierte schicken darf, Wahlkreis B
7,3 und Wahlkreis C 3,9 Delegierte.
Wahlkreis A bekommt zwei Delegierte,
denn diese Mindestzahl wird jedem Kreis zugestanden. Gibt es zehn solcher
kleinen Wahlkreise, sind damit bereits zwanzig Delegiertenplätze vergeben.
Wahlkreis B bekommt nun zunächst sieben, Wahlkreis C drei Delegierte,
entsprechend den Ziffern vor dem Komma. Sind auf diese Weise alle Wahlkreise
berücksichtigt, bleiben in der Regel noch freie Plätze übrig. Die werden nach
den Zahlen hinter dem Komma vergeben. Wahlkreis C hat, wegen der Neun hinter dem
Komma, gute Chancen auf einen weiteren Platz, Wahlkreis B nicht so gute.
So
wird auf möglichst gerechte Weise gewährleistet, dass keinem Wahlkreis ein
halber oder ein Vierteldelegierter bewilligt wird. Doch Excel rechnet nicht mit
Delegierten, sondern mit Zahlen, und die dürfen krumm sein. Selbstverständlich
kann Excel auch mit ganzen oder gerundeten Zahlen rechnen. Dem Grünen-Büro sei
an dieser Stelle die Tabellenfunktion "Runden" empfohlen, die eine krumme Zahl
auf eine beliebige Anzahl von Stellen rundet.
Oder, noch einfacher: In den
Einstell-Optionen gibt es einen Schalter mit der zugegeben rätselhaften
Beschriftung "Genauigkeit wie angezeigt". Klickt man diesen Schalter an, rechnet
Excel exakt mit den Zahlen, die auf dem Bildschirm angezeigt sind. Dieser kleine
Trick hätte den Grünen vermutlich einen zweiten Anlauf zum Wahlparteitag
erspart. Dann nämlich hätte am Ende der Delegiertenliste als Summe die Zahl 202
gestanden. Und das sind zwei zu viel. ...
NASA management: Berliner Morgenpost, 12.Mai 2002:
NASA is buying replacement parts for Space Shuttle computer chips at ebay
NASA kauft Ersatzteile für Spaceshuttle bei eBay und Yahoo Houston. Das
Raumfahrtprogramm der USA ist abhängig von Ersatzteilen, die nicht mehr
produziert werden. Wie die New York Times berichtet, sucht die NASA für
ihre Spaceshuttles Computerchips, die nicht mehr ...