Schlüsseltechnologie

STP037: Berühmte Softwarefehler


Listen Later

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
                    • ...more
                      View all episodesView all episodes
                      Download on the App Store

                      SchlüsseltechnologieBy Xyrillian Noises


                      More shows like Schlüsseltechnologie

                      View all
                      Chaosradio by Chaos Computer Club Berlin

                      Chaosradio

                      7 Listeners

                      Computer und Kommunikation by Deutschlandfunk

                      Computer und Kommunikation

                      10 Listeners

                      Bits und so by Undsoversum GmbH

                      Bits und so

                      23 Listeners

                      WRINT: Wer redet ist nicht tot by Holger Klein

                      WRINT: Wer redet ist nicht tot

                      16 Listeners

                      Logbuch:Netzpolitik by Metaebene Personal Media - Tim Pritlove

                      Logbuch:Netzpolitik

                      7 Listeners

                      Sternengeschichten by Florian Freistetter

                      Sternengeschichten

                      44 Listeners

                      Methodisch inkorrekt! by Methodisch inkorrekt!

                      Methodisch inkorrekt!

                      17 Listeners

                      c’t uplink - der IT-Podcast aus Nerdistan by c’t Magazin

                      c’t uplink - der IT-Podcast aus Nerdistan

                      5 Listeners

                      Geschichten aus der Geschichte by Richard Hemmer und Daniel Meßner

                      Geschichten aus der Geschichte

                      189 Listeners

                      heiseshow by heise online

                      heiseshow

                      2 Listeners

                      Übermedien by Übermedien

                      Übermedien

                      3 Listeners

                      Die Wochendämmerung - Der stabile Wochenrückblick by Katrin Rönicke und Holger Klein (hauseins)

                      Die Wochendämmerung - Der stabile Wochenrückblick

                      14 Listeners

                      UKW by Metaebene Personal Media - Tim Pritlove

                      UKW

                      1 Listeners

                      KI-Update – ein heise-Podcast by Isabel Grünewald, heise online

                      KI-Update – ein heise-Podcast

                      6 Listeners

                      Geschichten aus der Mathematik by detektor.fm – Das Podcast-Radio

                      Geschichten aus der Mathematik

                      1 Listeners