Schlüsseltechnologie

Die IT hat unser Leben in den letzten Jahrzehnten von Grund auf verändert. Aber wie funktioniert sie wirklich? Das möchte ttimeless mal erklärt bekommen. Zum Glück hat Xyrill Antworten.

https://schluesseltechnologie-podcast.de/

subscribe
share






episode 37: STP037: Berühmte Softwarefehler


Wir alle machen Fehler. So gut, so trivial. Wenn allerdings Elektronenrechner im Spiel sind, kann das durchaus kritisch werden. In manchen Fällen sogar tödlich.

ShownotesErrata zu STP034 von Thomas aus Berlin:

Am Ende der Folge wundert sich ttimeless darüber, warum sin(pi) auf dem Taschenrechner immer ein Ergebnis von 0,0548... produziert. Du versuchst, das dann mit möglichen Ungenauigkeiten der Abbildung von pi zu erklären.

Ich glaube, die Antwort ist viel einfacher: In der normalen Einstellung DEG erwartet der Taschenrechner die Eingabe in Grad und sin(pi°) = 0,0548... ist damit auch korrekt. Stellt man den Taschenrechner auf RAD (Radiant), dann rechnet der Taschenrechner auch korrekt sin(pi) = 0.

  • "Off by One" ("um eins daneben")

    • Diese Folge ist Nr. 37 und somit die 38. Folge dieses Podcasts!
    • häufige Konvention in der IT: Nummerierung fängt bei Null an
      • In einer Liste mit 10 Elementen das vorderste den Index 0 und das hinterste den Index 9.
      • formal plausibel, da Null die erste natürliche Zahl ist (ansonsten ist ℕ unter Addition keine Gruppe; siehe EWD831)
      • technisch plausibel, da die Speicheradresse einer Liste für gewöhnlich die Speicheradresse des vordersten Elementes ist; dieses hat also einen Abstand von 0 zum Beginn der Liste
    • siehe auch Zaunpfahlfehler
    • Thema heute: Wie katastrophal können die Auswirkungen solcher kleinen Fehler sein?
  • mechanische Fehler: "First actual case of bug being found."

  • Überlauf: Ariane-Flug V88 (1996)

    • erster Flug der Ariane 5
    • Steuerungssoftware war von der Ariane 4 übernommen und nicht auf derart große Horizontalgeschwindigkeiten ausgelegt
    • Überlauf bei Konvertierung von float64 in int16; aber bei dieser konkreten Variable keine Überlaufprüfung wegen Ressourcenknappheit
    • größeres Motiv laut Untersuchungsbericht: in der Gefahrenabschätzung wurde nicht hinreichend berücksichtigt, dass die Software (und nicht nur die Hardware) fehlerhaft sein könnte
    • Folge: erster großflächiger Einsatz von Fehlersuche mittels statischer Code-Analyse
  • Überlauf: Y2K Bug -> siehe STP016

  • Überlauf: Heartbleed (2014)

  • Drift: Dhahran Missile Incident (1991), siehe auch

    • Hintergrund: 28 Amerikaner getötet durch Raketenbeschuss auf eine US-Basis in Saudi Arabien während des 1. Golfkriegs
    • Fehler im Raketenabwehrsystem: aufgrund Rundungsfehler driftet die interne Uhr um einen Faktor von 0,00000095
    • nach 100 Stunden Dauerbetrieb ist die Drift bei 0,34 Sekunden; entspricht bei Raketen mit Mach 4 einer Distanz von etwa 500 Metern
  • Spezifikation falsch gelesen (oder Kommunikationsproblem): Mars Climate Orbiter (1999)

    • NASA hatte metrische Einheiten verwendet (Impuls in Newtonsekunden), die Navigationssoftware von Lockheed Martin hingegen imperiale Einheiten (Impuls in Pound-Force-Sekunden)
  • Clusterfuck: Therac-25 (1985-1987), unter anderem:

    • verteiltes verstreutes System: fehlerhafte Synchronisation zwischen einem Messprozess und einem parallel arbeitenden Steuerprozess
    • Benutzerführung: in bestimmten Situationen wurde nach der Eingabe neuer Daten der alte Datensatz weiterverwendet, obwohl die Benutzeroberfläche den neuen Datensatz anzeigte
    • Überlauf: 8-Bit-Flag für die Anzeige der Notwendigkeit einer Sicherheitsprüfung konnte von 255 auf 0 überlaufen und dadurch die Prüfung überspringen
  • überfordert von Komplexität: Corrupted Blood (2005)

    • vor COVID-19 eines der wichtigsten Studienobjekte für das Verbreitungsmuster einer Pandemie, inklusive Tiervektoren und asymptomatisch infektiösen Patienten
    • ein bestimmter Bosskampf in "World of Warcraft" versieht Spielercharaktere mit einem negativen Statuseffekt, der sie langsam tötet und der auf naheliegende Charaktere ansteckend wirkt
    • Spieler sollten mit diesem Statuseffekt den Bosskampf nicht verlassen können, aber die Reittiere der Spieler konnten es!
  • analog zu Copy-Paste-Fehler: Mariner 1 (1962)

    • Programmcode wurde auf Papier geschrieben, dort wurde fehlerhafterweise mit "R" statt mit dem korrekten "R̅" (R mit Überstrich) gerechnet
  • Copy-Paste-Fehler: Pentium-FDIV-Bug

    • Division von Fließkommazahlen (siehe STP009) beim Pentium verwendet einen Algorithmus, der zur Beschleunigung eine Tabelle von vorberechneten Werten verwendet
    • fünf Einträge in dieser Tabelle wurden nicht richtig in das finale Chip-Design übernommen
    • Ergebnis: bestimmte Divisionen liegen um einen Bruchteil eines ‰ daneben
    • Rückrufaktion im Wert von über 400 Millionen $
    • "Wie viele Intel-Mitarbeiter braucht man, um eine Glühbirne zu wechseln? 1,9999983256"
    • im Gespräch erwähnt: Fast Inverse Square Root


fyyd: Podcast Search Engine
share








 May 4, 2023  1h5m