Egy idősebb programozó egyszer azt mondta:
Egy karrier, amely nem tapasztalt p0 szintű hibát
A fenti idézetet én találtam ki. Programozóként azonban a hibák egyáltalán nem meglepőek.
Mennyi kárt okozott a hiba a cégnek? Ebben a cikkben egy olyan hibát vizsgálunk, amely 870 millió dolláros veszteséget okozott.
Az egész baleset
1996. június 4-én indították útjára az első Ariane 5 rakétát Francia Guyana partjainál.
Az indítás 370 millió dollárba került, a rakéta 500 millió dollár értékű kommunikációs műholdat hordoz, a teljes beruházás pedig 870 millió dollár.
37 másodperccel a felszállás után a rakéta 90 fokkal rossz irányba fordult, az erősítő beszakadt a levegőbe, és az űrrepülőgépet egy hatalmas folyékony hidrogén tűzgolyó nyelte el.
A robbanás pillanatában a mérnök még franciául is közölte: "Minden beállítás normális, és a pálya normális."
A méltóságteljes mérnök a főirányítóban és a tömeg mögötti zsivaj jelezte, hogy ez túl hirtelen történt.
Ez a katasztrofális baleset nyilvános vizsgálatot indított el, és a rakéta által szállított műholdak sérülése miatt közel 4 évre elhalasztották a Föld magnetoszférájának működésével kapcsolatos tudományos kutatásokat.
Az Ariane 5 balesetét széles körben az egyik legdrágább hibatörténetként tartják számon.
A baleset oka
A balesetet a lebegőpontos túlcsordulás okozta.
Az alkalmazásra szánt Ariane rakéták egy meghatározó rakéta felfelé vagy lefelé változót tartalmaznak, a továbbiakban: vízszintes eltérés, a továbbiakban BH .
Az Ariane 5 előző generációs Ariane 4 rakéta tervezésében a mérnök elemzi a BH peremfeltételeit, hogy meghatározza, melyik soha nem több egy 16 bites egész reprezentációs tartománynál (-32768 és 32767 között), ez a változó 16 bites egész számként van definiálva. Típus.
Az Ariane 5 azonban a rakéta teljesítményének javulása miatt a legtöbb alkalmazásban a BH-t 64 bites lebegőpontos számként definiálja, és egyes részeit továbbra is hanyagság miatt használták Ariane 4 16 bites egész számként.
Ha ezt a két kódrészt együttesen használják, akkor a program megpróbál 64 bites lebegőpontos számot rendelni a 16 bites egész számhoz.
A rakéta felemelkedésének első néhány másodpercében a rakéta gyorsulása nagyon alacsony, így a két érték közötti konverzió sikeres.
Kétségbeesetten, ahogy a rakéta gyorsulása egyre nagyobb és magasabb, amikor az érték meghaladja a 16 bites egész számokat, túlcsordulás történik.
Normál körülmények között a rakétahajtómű fúvókája repülésirányítási információkat kap. De miután a túlcsordulás bekövetkezett, kapott egy diagnosztikai bitmintát (ami azt jelzi, hogy túlcsordulás történt), ami miatt a fúvóka helytelenül viselkedett, és végül tragédia történt…
utóirat
Az Európai Űrügynökség végül egy csapatot alakított, hogy nyomokat találjon a mintegy 12 négyzetkilométeren szétszóródott rakétaroncsból, és visszaszerezze a baleset idején az adatokat.
A baleset lenyűgözőnek mondható. Mi nyűgözött le, üdvözöljük a megjegyzés rovatban.