Vor genau 26 Jahren, am 4. Juni 1996 startete die ESA von Französisch Guyana aus eine unbemannte Ariane 5 Rakete mit vier Satelliten an Bord. 37,3 Sekunden nach dem Start explodierte die Ariane 5. Verlust ca. 500 Millionen Dollar für Rakete und Satelliten. Entwicklungskosten ca. 7 Milliarden Dollar.
Ursache dieses 500 Millionen Dollar Feuerwerkes war ein einfacher Integer-Overflow, ähnlich wie beim Y2k38 Problem.
Was ist genau passiert?
Ein Softwarefehler im „Inertial Reference System“ (IRS), welches aus dem Vorgängermodel Ariane 4 übernommen wurde, war ursächlich für die Explosion verantwortlich. Der Messwert der Beschleunigung wurde als (signed) 16-bit Integer zwischengespeichert. Die Ariane 5 hatte gegenüber ihrer Vorgängerin eine um 140 Prozent größeren Schub. Dadurch wurde der Wertebereich der Variablen überschritten und es kam zum Sprung des Wertes von 32768 auf -32767. Dies löste eine Fehlermeldung aus. Die Steuerdüsen blieben in ihrer Position stecken und die Rakete drehte sich quer zur Flugrichtung. Boom!!
Parallelen zum Jahr 2038 Problem (Y2k38 Bug)
Falsche Sicherheit
Das System wurde bereits über Jahre erfolgreich eingesetzt. Man rechnete nicht mit einem solch einfachen Softwarefehler.
Beim y2k38 Bug kann man sich auch nicht vorstellen, dass die Systemzeit „einfach“ mal zu Ende ist. Die Lehren aus dem Millenium-Bug sollten doch längst gezogen worden sein, oder?!
Schwierige Ausnahmebehandlung
Was macht man, wenn Flugdaten unmögliche Werte aufweisen? Einfach abschalten ist offensichtlich nicht die beste Lösung.
Was passiert wenn ein System die aktuelle Zeit nicht mehr kennt? Falsche Uhrzeit, fehlerhafte Berechnungen, Absturz, Explosion… wir werden sehen.
Niemand ist verantwortlich
Die Entwickler des fehlerhaften Teils haben sich an Anforderungen und Design-Vorgaben gehalten. Niemand wurde gefeuert. Keine Abteilung war schuld, obwohl der Fehler eigentlich offensichtlich war.
Das Jahr 2038 Problem ist schon lange bekannt. Wirklich zuständig fühlen sich nur ein paar wenige. Es werden noch nicht ausreichend Resourcen gesprochen, um diesem „einfachen“ Softwarefehler Herr zu werden. Der Grund ist schnell gefunden: Niemand ist verantwortlich!
Reale Situation vs. Simulation
Selbstverständlich wurde die Software der Ariane 5 getestet. Aber wie bereits Edsgar Wybe Dijkstra bemerkte: „Durch Testen kann man stets nur die Anwesenheit, nie aber die Abwesenheit von Fehlern beweisen“. Eine Simulation kann nicht alle Parameter eines realen Raketenfluges abbilden.
Die Auswirkungen des Y2k38 Bug auf ein einzelnes System kann man einfach durch Umstellen der Systemzeit auf einen Zeitpunkt nach 19. Januar 2038 03:14:07 Uhr UTC zum Vorschein bringen. Aber auch hier ist es unmöglich alle Rahmenbedingungen und systemübergreifende Folgen vorgängig zu testen. Ein Restrisiko bleibt immer.
Beoz Association, gegründet am 04. Juni 2020
Im Andenken an diesen einfachen aber folgeschweren Softwarefehler haben wir den 4. Juni als Gründungsdatum für unseren Verein gewählt. Beoz Assosiation wird in den nächsten Jahren Entscheidungsträger und Gesellschaft sensibilisieren, Geräte und Systeme testen, Verantwortliche ausfindig machen und benennen, sowie mögliche Lösungswege für das Jahr 2038 Problem aufzeigen. Damit wollen wir einen Beitrag leisten, dass nicht wieder ein einfacher Zählerüberlauf zu einer Katastrophe führt.