Skip to content

Berühmte Softwarebugs

AlexKOrSo edited this page Apr 6, 2021 · 32 revisions

Integrieren Sie hier Ihren Text in "schönstem Markdown" :-)

1. Milleniums Bug


Quelle: Wikipedia

Da Speicherplatz am Anfang der Coputerära teuer und somit knapp war, wurde bei Jahresangaben nur die Zehner und Einser gespeichert, d.h. das Jahr 1979 wurde beispielsweise als 79 gespeichert. Die Probleme fingen dann bei der Jahrtausendwende an. 2000 muss nach der oben genannten Regel als 00 gespeichert werden. Programme aus der damaligen Zeit würden jedoch 00 als 1900 interpretieren, was zu vielen Fehlern führen würde, z.B.

  • Fehler beim Vergleichen von Jahreszahlen: 00 < 99 => 2000 < 1999
  • Fehler bei der Berechnung von Zeitangaben: 00 - 99 ≠ 1, weil 1900 - 1999 = -99
  • Fehler bei der Zinsberechnung
  • ...

Das-Jahr-2000-Problem

2. Patriot-Raketen-Fehler

Während des Golfkriegs verfehlte am 25.2.1991 in Saudiarabien eine amerikanische Patriot-Rakete eine irakische Scud-Rakete. Die Scud-Rakete traf eine Kaserne und tötete 28 Soldaten.

Ursache: Ungenaue Berechnung der Zeit seit Systemstart wegen Rundungsfehler. Interne Uhr in zehntel Sekunden. Umrechnung: Verstrichene Zeit mit 1/10 multipliziert, um die verstrichene Zeit in Sek. zu berechnen. Dabei ist

1/10 = 2^{-4}+2^{-5}+2^{-8}+2^{-9}+2^{-12}+2^{-13}+...

Als Festkommazahl mit 24 Stellen also

0.00011001100110011001100

Rundungsfehler:

2^{-25}+2^{-26}+... approx 0.000000095=9.5*10^{-8}

Effekt: Nach 100 Betriebsstunden 100*60*60*10=3.6*10^6 ergibt sich als Fehler (Zeitdifferenz)

9.5*10^{-8}*3.6*10^6=0.34 Sekunden

Scud-Geschwindigkeit 1.676 km/s=6034 km/h Scud in der Zeit ca. 0.57 km weiter. Damit ausserhalb der Reichweite des ``Aufspürsystems'' der Patriot.

Quelle: Kleine BUGs, große GAUs: Softwarefehler

3. Atomwaffen Gandhi

Der als friedlich bekannte Inder Mahatma Gandhi ist im Spielefranchise Civilization dafür bekannt, besonders gerne nukleare Waffen zu nutzen. Diese Affinität ist einen Programmierfehler im ersten Teil zuzuordnen, in welchem der Agressionswert bestimmt, wie wahrscheinlich es ist, dass der Herrscher eine atomare Waffe benutzt. Gandhi startet dort mit einem Aggressionswert von 1, jedoch bekommt jede Demokratie bei Spielstart -2 Aggresionspunkte, was zu einem Wert von -1 führt. Binär betrachtet entspricht das folgender 8 Bit Zahl:

1111 1111

Dieser Wert wird intern aber als ein unsigned char, also wie eine 8 Bit vorzeichenlosen Ganzzahl behandelt. Dies führt dazu, dass nicht eine -1 gelesen wird, sondern der Maximalwert dieses Datentyps 255.

Quelle: Atombombe von Gandhi

4. Linearbeschleuniger in Krebstherapie

Der Therac-25 der Firma Atomic Energy of Canada Limited ist ein Linearbeschleuniger, der Röntgenstrahlen mit 25 MeV oder Elektronenstrahlen zur Behandlung von Tumoren erzeugen konnte. Er wurde von 1985 bis 1987 eingesetzt. In der Therac-Serie war der Therac-25 das erste Modell, bei dem die Konfiguration des Beschleunigers komplett an einem Computer und nicht mehr am Gerät erfolgte. Außerdem wurde auf hardwarebasierte Sicherheitssysteme verzichtet.

Im Röntgenmodus muss für die Erzeugung der Röntgenstrahlung zusätzlich eine Bleiplatte in den Strahlengang eingeführt werden, für eine optimale Ausbeute muss die einstrahlende Intensität ca. 100 mal höher sein. Befand sich diese Bleiplatte nicht im Strahlengang, konnte die Strahlenüberdosis bis zum Tod führen. Insgesamt kam es zu 6 Unfällen in Folge von Softwarebugs und menschlichem Fehlverhalten. Unter anderem wurden bei Komplettierung der Behandlungseinstellungen am PC eventuelle Korrekturen bei Fehleingaben nicht registriert, da zwischen den einzelnen Subroutinen eine Race-Condition eintreten konnte.

Weiterhin wird für Fehler in der Konfiguration eine 8bit-Variable inkrementiert. Kommt es zu einem Overflow, ist der Wert der Variable gleich 0 und es wird kein Fehler registriert.

Quellen: Hauptseminar Prof. Huckle - Therac-25 (TU München), Pfeifer, Martin. Berühmt berüchtigte Softwarefehler. Therac-25.

5. Windows Calculator

Rundungsfehler gehören zu den wohl häufigsten Bugs in der Softwareentwicklung. Selbst weltberühmte Software wie das Windows OS ist vor solchen Fehlern nicht sicher. Fehlerhaft waren hier die aus der Operation des Wurzel-Ziehens resultierenden Floats, die in weiteren Berechnungen aufgrund des auftretenden Rundungsfehlers nicht die zu erwartenden Ergebnisse lieferten.

Leider lässt sich der Bug auf aktuellen Windows-Versionen nicht mehr reproduzieren, aber wer ein älteres System besitzt sollte den Bug schnell nachvollziehen können.

Quelle: Famous Bugs

6. Beim Aktienhandel verzockt

Die Wall-Street-Firma Knight Capital setzte 2012 durch den Einsatz einer neuen Handels-Software in Rekordzeit die eigene Existenz aufs Spiel.

Image of Knight Capital Quelle: https://upload.wikimedia.org/wikipedia/en/thumb/3/31/Knight_Capital_Group_logo.svg/1200px-Knight_Capital_Group_logo.svg.png

45 Minuten ließ Knight Capital eine neue Computersoftware mit Aktien zocken. Danach war die Aktienhandels-Firma um 440 Millionen US-Dollar (359 Millionen Euro) ärmer. Das Geld gehört jetzt anderen Leuten, Knight Capital kämpft ums Überleben. 440 Millionen Dollar sind deutlich mehr, als der im jüngsten Quartal erzielte Umsatz von 289 Millionen Dollar. Der Vorfall wird in den USA in Anspielung an eine Horrorfilm-Reihe als "Knightmare on Wall Street" (Nightmare = Alptraum, Anm.) bezeichnet.

Bei dem umstrittenen hochfrequenten Handel (High Frequency Trading) werden Wertpapiere in extrem schneller Folge ge- und wieder verkauft. Das Tempo kann nur von automatischen Systemen gehalten werden. Ein solches neues, fehlerhaftes System ist laut Knight Capital an dem Debakel schuld. Der neue Algorithmus soll tausende Aufträge in die Handelssysteme der New Yorker Börse NYSE eingespeist haben, die weit vom ansonsten herrschenden Marktpreis abwichen. Etwa 150 Papiere sollen betroffen gewesen sein.

Quelle: heise online

Clone this wiki locally