TECHNOLOGIA · CYBERBEZPIECZEŃSTWO · BIZNES

Rozpad rakiety przez błąd w kodzie

Programowanie to poważna sprawa, w błędy w nim mogą drogo kosztować. Tak było w przypadku bugu w softwarze rakiety Ariane 5. Jeden błąd w kodzie zniszczył wiele lat pracy inżynierów.

Z kosmodromu położonego u wybrzeży Gujany Francuskiej 4 czerwca 1996 roku startowała rakieta Ariane 5. Był to efekt 10 lat pracy. Lot odbywał się w ramach bezzałogowej misji naukowej Cluster. Jej celem miało być badanie ziemskiej  magnetosfery.  10 lat pracy pociągało za sobą także spore koszty osiągające 7 mld dolarów.

Projekt był wspólnym przedsięwzięciem państw stowarzyszonych w ESA (Europejskiej Agencji Kosmiczne). Jednak największym beneficjentem powodzenia całego przedsięwzięcia  miał być Paryż.

I chociaż wydawało się, że wszystko jest pod kontrolą i powodzenie projektu jest pewne, to szybko okazało się, że jest zupełnie inaczej.

30 sekund po starcie rakieta zboczyła z kursu. Po 7 sekundach przechyliła się już o 90 stopni. A po kolejnych 2 sekundach rozpadła się na wysokości 3,7 km.

To zdarzenie opóźniło badania magnetosfery o 4 lata i wygenerowało straty w wysokości 370 mln dolarów.

Dlatego też przeprowadzono drobiazgowe śledztwo mające wyjaśnić, dlaczego doszło do tej katastrofy. Okazało się, że winne było oprogramowanie napisane w języku Ada. Doszło w nim do przeciążenia w systemie nawigacyjnym SRI. Stało się tak w wyniku częściowego skopiowania oprogramowania Ariane 5 z jej poprzedniczki – Ariane 4. W poprzedniej rakiecie używano 16-bitowej wersji kodu, w późniejszej – wersji 64-bitowej.

Skutkiem tego było konwertowanie przez oprogramowanie Ariane 5 64-bitowych wartości zmiennoprzecinkowych na 16-bitową liczbę całkowitą ze znakiem. W efekcie powstawała zbyt duża liczba, a błąd programistyczny integer overflow (przekroczenie zakresu liczb całkowitych) prowadził do przeciążenia pamięci. Co wymusiło na systemie autodestrukcję rakiety.

A wszystko przez to, że przy przenoszeniu oprogramowania nie sprawdzono jego założeń. Nie przeprowadzono też testów oraz symulacji komputerowych.

To wyraźnie pokazuje, że kody mają realne przełożenie na życie. A błędy w nich ukryte mogą skutkować wielomilionowymi stratami.

Źródło: www.dobreprogramy.pl

Klaudia Wojciechowska
Klaudia Wojciechowska
Redaktorka ISPortal i ISProfessional. Dziennikarka telewizji lokalnego operatora telekomunikacyjnego Ret-Sat1. Absolwentka kulturoznawstwa na Uniwersytecie Łódzkim ze specjalizacją filmoznawstwo i nowe media.

przeczytaj najnowszy numer isporfessional

Najnowsze