Programmierfehler
21.02.2018, 10:20 Uhr
Die schlimmsten Bugs der Geschichte
Programmierfehler, sogenannte Software-Bugs, sind fester Bestandteil der Computergeschichte. Einige von ihnen sind legendär. Wir präsentieren die vier gröbsten Schnitzer.
Auch Programmierer sind vor Fehlern nicht gefeit. Ein Programm ohne Bugs gibt es nicht. Zum Glück verursachen Software-Fehler in den meisten Fällen nur Unannehmlichkeiten. Doch Bugs können auch gewaltige Schäden verursachen, Panik verbreiten oder gewichtige Auswirkungen haben. Wir haben ein paar der gröbsten Programmierschnitzer der Computergeschichte zusammengetragen.
Therac-25: Wenn Bugs töten
Von Harmlosigkeit kann bei den Therac-25-Vorfällen zwischen 1985 und 1987 kaum die Rede sein. Vielmehr führte hier ein Programmierfehler zum Tod von drei Menschen und zu schwerwiegenden Schädigungen bei drei weiteren Personen. Beim Therac-25 handelte es sich um einen Teilchenbeschleuniger, welcher der Strahlentherapie bei Krebspatienten diente. Das Gerät wurde von der kanadischen Firma Atomic Energy of Canada Limited (AECL) hergestellt und in nordamerikanische Krankenhäuser geliefert.
Eine Kombination aus Software-Fehlern und mangelnder Qualitätskontrolle endete fatal. So schrieb ein einziger Programmierer den Code für das Gerät basierend auf den Programmen, die in Vorgängermodellen verwendet wurden. Er ging davon aus, dass Software nicht "altern" könne. Tatsächlich führte das überarbeitete Betriebsprogramm dazu, dass die Strahlendosen des Therac-25 zu hoch waren und bei den sechs aktenkundigen Patienten zu schweren Schäden führte, die bei dreien tödlich endeten.
Millennium-Bug: Jahreszahlen laufen Amok
Der wohl bedeutendste und folgenschwerste Bug der Computergeschichte war bislang der Millennium-Fehler oder das Jahr-2000-Problem. Dieses entstand dabei durch die Verwendung eines Datumsformats, das für die Jahreszahl nur zwei Stellen vorsah. Das Jahrhundert wurde dadurch schlicht ignoriert. Die Praxis stammte aus den Anfangszeiten der "EDV" in den 1950er- und 1960er-Jahren, als Speicherplatz teuer war und niemand sich vorstellen konnte, dass die auf den Datensätzen basierenden Programme die Jahrtausendwende erleben würden.
Die Computerpioniere aus der Cobol-Ära trifft aber nur einen Teil der Schuld. Vielmehr "verschleppten" nachfolgende Generationen von Entwicklern das Problem, indem sie ihrerseits Programme schrieben, welche die bestehende zweiziffrige Jahreszahl weiterverwendeten.
Das ging so lange gut, bis Ende der 90er-Jahre der Branche bewusst wurde, dass viele Operationen im Jahr 2000 und danach nicht oder nur fehlerhaft ausgeführt würden. Plötzlich herrschte Panik. Horrorszenarien machten die Runde. Würden am 1. 1. 2000 Bankomaten kein Geld mehr ausgeben, Steuerungen in Zügen und Gleisanlagen versagen, Stromnetze kollabieren, Atomkraftwerke in die Luft fliegen oder gar Nuklearwaffen sich verselbstständigen?
Die Horrorszenarien – selbst wenn vereinzelt übertrieben – führten einerseits zur größten Bug-Fixing-Aktion der Computergeschichte, andererseits zu einem riesigen Neuanschaffungs-Boom von Programmen und Geräten, die den Millennium-Bug nicht aufwiesen. Die vielen Jahr-2000-Projekte bescherten daher der ICT-Branche fette Jahre. Laut Schätzungen von Gartner wurden weltweit bis zu 600 Milliarden US-Dollar zur Behebung des Fehlers ausgegeben. Der Boom führte in den Folgejahren – verschärft noch durch das Platzen der Internetblase – zu einer mindestens vier Jahre andauernden Rezession in der ICT-Branche.
Pentium-Bug: Fließkomma-Schwierigkeiten
Wie sich ein eigentlich kleiner Bug zum PR-Fiasko wenden kann, wenn falsch reagiert wird, hat der sogenannte Pentium-FDIV-Bug gezeigt. Der Hardware-Fehler steckte in Pentium-Prozessoren von Intel und kam im November 1994, gut anderthalb Jahre nach der Markteinführung des Computer-Chips, ans Tageslicht. Der Fehler führte bei gewissen, eher seltenen Gleitkomma-Berechnungen zu ungenauen Ergebnissen.
Spürbare Auswirkungen des Fehlers waren im Grunde nur bei sehr komplexen Berechnungen zu erwarten, die zudem eine hohe Genauigkeit erforderten, etwa bei astronomischen Prognosen. Wie sehr der Pentium-Bug den Otto-Normal-PC-Anwender betraf, war zunächst umstritten. Bei vielen Standardanwendungen wurden Gleitkomma-Einheiten ignoriert, da viele CPUs damals gar keine besaßen. Intel ging daher davon aus, dass der Fehler statistisch gesehen bei Normalanwendern nur einmal alle 27.000 Jahre auftreten könne. Diese Angabe wurde allerdings von diversen Experten infrage gestellt. Zudem sah IBM eine Chance, die hauseigenen PowerPC-CPUs zu propagieren, und kündigte medienwirksam den Auslieferungsstopp von Rechnern mit Pentium-Prozessor an.
Um das PR-Fiasko zu vervollständigen, gab Intel zunächst zu verstehen, die fehlerhafte CPUs nur bei jenen Anwendern auszutauschen, die nachweisen konnten, dass sie tatsächlich von fehlerhaften Gleitkomma-Berechnungen betroffen seien. Erst nach massivem öffentlichem Druck und nachdem Pentium-Witze wie "2,0000000000 + 2,0000000000 ist nicht gleich 3,999998456?" kursierten, lenkte Intel ein und startete ein umfassendes Umtauschprogramm. Insgesamt musste der Chipriese fast eine halbe Milliarde Dollar für die Fehlerbehebung aufwenden, den Imageschaden nicht mit eingerechnet.
Mariner 1: Der teuerste Bindestrich
1962, als die USA und ihre Raumfahrtbehörde Nasa durch den Erfolg der Sowjetunion mit ihrem ersten Satelliten Sputnik schon unter massivem Erfolgsdruck standen, musste das Weltraumprogramm eine weitere Niederlage einstecken: Der Start der Raumsonde Mariner 1, die den Planeten Venus erkunden sollte, missglückte. Schon Minuten nach dem Abheben der Trägerrakete konnte diese den vorgegebenen Kurs nicht halten. Auch fieberhaft gefunkte Korrekturprogramme nützten nichts. Als die Rakete Schiffe im Atlantik bedrohte, zogen die Mitarbeiter im Kontrollzentrum die einzig richtige Konsequenz und sprengten die Mariner 1 samt Trägerrakete in die Luft.
Die Untersuchung nach dem Desaster ergab, dass bei der Eingabe des im Original handgeschriebenen Steuerprogramms für den Antrieb ein Tippfehler passierte. Ein Bindestrich wurde übersehen und führte dazu, dass das Steuerprogramm mit falschen Messwerten gefüttert wurde. Wie Science-Fiction-Autor Arthur C. Clarke in seinem Sachbuch "Unsere Zukunft im Weltall" treffend formulierte, hatte die Mission so "durch den teuersten Bindestrich der Geschichte Schiffbruch erlitten".