Najdroższy bug w historii? Przez błąd w kodzie rozpadła się rakieta

Bywają błędy programistyczne, które prowadzą do bardzo poważnych konsekwencji i ogromnych strat finansowych. Tak było w przypadku bugu w softwarze rakiety Ariane 5, który w kilka chwil pogrzebał wieloletnią pracę inżynierów.

Najdroższy bug w historii? Przez błąd w kodzie rozpadła się rakieta
Źródło zdjęć: © Getty Images | Alain Nogues
Adam Gaafar

Był 4 czerwca 1996 roku. Zegary w Kourou pokazywały 7:34 rano, gdy poranną ciszę przerwał niespodziewanie głośny huk. Z kosmodromu położonego u wybrzeży Gujany Francuskiej startował właśnie owoc 10-letniej pracy: rakieta Ariane 5. Odbywało się to w ramach bezzałogowej misji naukowej Cluster, której celem było zbadanie ziemskiej magnetosfery. Na pokładzie znajdowały się cztery satelity o nazwach Rumba, Salsa, Samba i Tango.

Wielkie oczekiwania

Transmisję z tego wydarzenia oglądał w swoim gabinecie prezydent Francji Jacques Chirac. Sukces europejskiego programu kosmicznego był dla niego niezwykle ważny – wszak zarówno miejsce startu, jak i spółka Arianespace skupiały wzrok całego świata właśnie w kierunku jego państwa.

Chociaż projekt był wspólnym przedsięwzięciem państw stowarzyszonych w ESA (Europejskiej Agencji Kosmiczne), największym beneficjentem udanego startu Ariane 5 byłby właśnie Paryż. Od powodzenia misji zależał zatem prestiż Francji.

Ariane 5 to jednak nie tylko lata przygotowań, ale również ogromne nakłady finansowe sięgające 7 mld dolarów. Nic więc dziwnego, że Chiracowi zależało, aby wszystko było dopięte na ostatni guzik. Stało się inaczej. Już po 30 sekundach od startu rakieta zbacza z kursu. Siedem sekund później przechyla się o 90 stopni. Inżynierowie zaczynają się obawiać, że Ariane 5 runie na tereny zabudowane. W 39 sekundzie od startu rakieta rozpada się na wysokości 3,7 km.

Kosztowny błąd

Katastrofa Ariane 5 oznaczała straty rzędu 370 mln dolarów i opóźniła badanie magnetosfery o 4 lata. Wydarzenie to jest powszechnie uważane za jedną z najdroższych awarii oprogramowania w historii. Dlaczego?

W celu zbadania przyczyny katastrofy przeprowadzono drobiazgowe śledztwo, które wykazało, że w oprogramowaniu napisanym w języku Ada doszło do przeciążenia w systemie nawigacyjnym SRI. Wszystko przez to, że oprogramowanie w Ariane 5 było częściowo skopiowane z jej poprzedniczki, Ariane 4. Rzecz w tym, że we wcześniejszej rakiecie używano 16-bitowej wersji kodu, podczas gdy jej następczyni potrzebowała - ze względu na lepsze parametry techniczne - wersji 64-bitowej.

Katastrofa rakiety Ariane 5
Katastrofa rakiety Ariane 5© Materiały prasowe | ESA

W konsekwencji oprogramowanie Ariane 5 konwertowało 64-bitowe wartości zmiennoprzecinkowe na 16-bitową liczbę całkowitą ze znakiem. Problem polegał na tym, że liczba, która w ten sposób powstała, była zbyt duża. Efekt? Błąd programistyczny integer overflow (przekroczenie zakresu liczb całkowitych), przeciążenie pamięci i wymuszenie przez system autodestrukcji rakiety. Śledztwo wykazało, że przy przenoszeniu oprogramowania z Ariane 4 nie sprawdzono dokładnie jego założeń. Nie przeprowadzono także testów oraz symulacji komputerowych.

Programy

Zobacz więcej
Wybrane dla Ciebie
Komentarze (21)