Am europäischen Weltraumbahnhof in Kourou herrscht gespannte Stille. Um Punkt 9.33 Uhr UTC zünden die Triebwerke der Ariane 5 zu ihrem Jungfernflug V88. Es ist der Stolz der europäischen Raumfahrtagentur ESA und das Ergebnis von zehn Jahren Entwicklungszeit und Investitionen in Höhe von über sieben Milliarden US-Dollar. Die Nutzlast: vier hochkomplexe Forschungssatelliten der Cluster-Mission zur Erforschung des Erdmagnetfelds, Wert ca. 500 Millionen US-Dollar.
Doch die Erleichterung über den perfekten Start währt nur exakt 37 Sekunden. In knapp vier Kilometern Höhe bricht die Rakete plötzlich unvermittelt seitlich aus. Die gigantischen aerodynamischen Kräfte scheren die Feststoffbooster vom Rumpf ab, die Struktur zerriss im Überschallflug. Bei Sekunde 39 löst das automatische Selbstzerstörungssystem aus. Eine gewaltige Feuerkugel erhellt den Himmel, gefolgt von einem Trümmerregen über dem Regenwald.
Die Ursache war weder ein fehlerhaftes Ventil noch ein mechanischer Bruch. Es war ein klassischer Softwarefehler und dazu gleich einer der teuersten der Technikgeschichte überhaupt.
Das Erbe der Ariane 4: ein verhängnisvoller Annahmefehler
Die Untersuchungskommission unter Leitung des französischen Mathematikers Jacques-Louis Lions deckte schnell auf, dass die Katastrophe auf einer unkritischen Code-Übernahme basierte. Im Trägheitsnavigationssystem (SRI – Système de Référence Inertielle) arbeitete Software, die nahezu unverändert aus dem Vorgängermodell Ariane 4 stammte.
Während des Fluges errechnete der Bordcomputer die horizontale Driftgeschwindigkeit der Rakete. Diese Ausrichtung wird intern als 64-Bit-Gleitkommazahl verarbeitet. Um den Wert für spätere Steuerungsschritte weiterzuverwenden, musste er aber in eine 16-Bit-Ganzzahl mit Vorzeichen umgewandelt werden.
- Eine 16-Bit-Ganzzahl kann systembedingt nur Werte zwischen -32.768 und +32.767 darstellen.
- Bei der Ariane 4 war das noch völlig ausreichend, da ihre Flugbahn flacher verlief und die seitlichen Kräfte diesen Schwellenwert niemals erreichten.
- Die Ariane 5 war jedoch eine völlig neue Konstruktion. Ihre Triebwerke waren deutlich leistungsstärker, ihre Flugbahn steiler und ihre Beschleunigung in den ersten Flugsekunden drastisch höher.
Exakt 36,7 Sekunden nach dem Start überschritt der berechnete Flugwert dann das Limit von 32.767. Der Effekt: Ein sogenannter Integer Overflow (Speicherüberlauf).
Die Kaskade des Versagens
Dass ein einfacher Rechenfehler eine Multimillionen-Dollar-Rakete vernichten konnte, lag an einer Verkettung dramatischer Designentscheidungen im Software-Engineering.
Um die Prozessorauslastung der Navigationsrechner in der kritischen Startphase um ein paar Prozentpunkte zu drücken, hatten die Entwickler den Überlaufschutz für sieben spezifische Variablen deaktiviert. Sie gingen fälschlicherweise davon aus, dass diese Werte mathematisch niemals zu hoch werden könnten.
Zwar verfügte die Ariane 5 über zwei identische Navigationscomputer (SRI 1 und SRI 2), was im Bereich der Luft- und Raumfahrt auch absolut üblich ist. Als Rechner 1 wegen des Fehlers abstürzte, übernahm entsprechend sofort Rechner 2. Doch da auf beiden Systemen exakt dieselbe Software lief und sie denselben physikalischen Kräften ausgesetzt waren, erlitt Rechner 2 nur Bruchteile einer Millisekunde später den identischen Absturz.
Als beide Navigationsrechner den Dienst quittierten, schickten sie ein Fehlerprotokoll an den Hauptrechner der Rakete. Die Software des Hauptrechners war jedoch nicht darauf programmiert, diesen Fehlercode als Systemausfall zu erkennen. Sie interpretierte die Binärdaten des Fehlerprotokolls als reale Flugdaten.
Der Hauptrechner glaubte nun fälschlicherweise, die Rakete befinde sich in einer extremen Schräglage. Um diesen vermeintlichen Kursfehler zu korrigieren, befehligte er das Haupttriebwerk sowie die Schwenkdüsen der Booster zum vollen Ausschlag um 30 Grad. Die Rakete bäumte sich bei Mach 1,5 quer zur Flugrichtung auf und wurde von der Luftströmung zerrissen.
Die Lehren für die IT-Welt
Der Lions-Bericht entwickelte sich zu einem Standardwerk der Informatik und veränderte die Entwicklung von sicherheitskritischer Software grundlegend. Das Unglück lieferte dabei drei zentrale Erkenntnisse:
- Code-Wiederverwendung erfordert Re-Validierung: Nur weil Software in System A fehlerfrei läuft, bedeutet das nicht, dass sie in System B unter veränderten physikalischen Parametern sicher ist.
- Redundanz schützt nicht vor Softwarefehlern: Identische Hardware-Redundanz hilft bei Kabelbrüchen oder Triebwerksschäden, ist aber bei Logikfehlern im Code nutzlos.
- Fehlerbehandlung vor Performance-Optimierung: Das Einsparen von Rechenleistung durch das Abschalten von Schutzmechanismen (Exception Handling) ist in der modernen Systementwicklung ein No-Go.
Fazit
Schon gelesen? Ich habe mein MacBook-Trackpad in eine schnurrende Katze verwandelt – und will beim Arbeiten nie mehr darauf verzichten.
Der Absturz führte zur Einführung strenger formaler Verifikationsmethoden in der Luft- und Raumfahrt, um mathematisch zu beweisen, dass Laufzeitfehler wie Integer Overflows ausgeschlossen sind. Erst 1998 flog die Ariane 5 erfolgreich ins All und entwickelte sich in den folgenden zwei Jahrzehnten zu einem der zuverlässigsten Lastesel der Raumfahrtgeschichte.
Nur angemeldete Benutzer können kommentieren und bewerten.
Dein Kommentar wurde nicht gespeichert. Dies kann folgende Ursachen haben:
1. Der Kommentar ist länger als 4000 Zeichen.
2. Du hast versucht, einen Kommentar innerhalb der 10-Sekunden-Schreibsperre zu senden.
3. Dein Kommentar wurde als Spam identifiziert. Bitte beachte unsere Richtlinien zum Erstellen von Kommentaren.
4. Du verfügst nicht über die nötigen Schreibrechte bzw. wurdest gebannt.
Bei Fragen oder Problemen nutze bitte das Kontakt-Formular.
Nur angemeldete Benutzer können kommentieren und bewerten.
Nur angemeldete Plus-Mitglieder können Plus-Inhalte kommentieren und bewerten.