L'explosion d'une fusée Ariane 5 à cause d'un bogue

Proposé par
le

Dans l'histoire des bogues informatiques, un exemple célèbre concerne le vol 501 de la fusée Ariane 5 en 1996. Un dépassement de capacité (une variable de 8 bits devant accueillir un nombre en nécessitant 9) causa une défaillance du système, ce qui entraîna carrément l'explosion de la fusée.


Commentaires préférés (3)

Et moi je me plains quand mon téléphone quitte tout seul une application...

Pour ceux qui ne lisent pas les sources le vol 501 était un vol inaugural qui a eu lieu le 4 juin 1996 , la fusée explosa 36.7 secondes après son décollage à 4000 mètres d'altitude

a écrit : J'ai rien compris ! Appart que y a eu une explosion ^^' Imagine un ascenseur de 8 personne. Tu en mets 9. Et Boum!

Posté le

windowsphone

(319)

Répondre


Tous les commentaires (72)

J'ai rien compris ! Appart que y a eu une explosion ^^'

Posté le

android

(29)

Répondre

Et moi je me plains quand mon téléphone quitte tout seul une application...

Pour ceux qui ne lisent pas les sources le vol 501 était un vol inaugural qui a eu lieu le 4 juin 1996 , la fusée explosa 36.7 secondes après son décollage à 4000 mètres d'altitude

Ils auraient pu faire un simple ctrl+alt+supprim

Posté le

android

(19)

Répondre

a écrit : J'ai rien compris ! Appart que y a eu une explosion ^^' Imagine un ascenseur de 8 personne. Tu en mets 9. Et Boum!

Posté le

windowsphone

(319)

Répondre

D'après la première source, la fusée transportait 4 satellites de la mission Cluster, d'une valeur totale de 370 millions de dollars. Ça fait mal une erreur comme ça...

Posté le

android

(43)

Répondre

Il y a un programmateur qui a dû se faire enguirlander...

Ce qu'il faut comprendre c'est qu'un nombre composé de 9 zéro ou un, à essayer de se caser dans une variable qui n'en acceptait "que" 8.
Résultat plutôt impressionnant : Boom.

J'ai d'abord cru au scénario d'un film de Michel Bay mais visiblement ça s'est vraiment passé comme ça !

Posté le

android

(6)

Répondre

Pour la navette Challenger, qui a explosé au décollage avec 4 astronautes à bord, c'est un petit joint d'étanchéité (en silicone, me semble-t-il) appelé O-Ring qui était défectueux... Sur ce genre de système, tout doit être parfait. Ce qui me rend admiratif pour chaque lancement réussi, même de routine... Bravo les mecs.

D'ailleurs la scène a été filmée dans le film "un indien dans dans la ville"

a écrit : J'ai rien compris ! Appart que y a eu une explosion ^^' En fait, en informatique, comme tout le monde le sait, tout est codé avec des 0 et des 1. On appelle ça le code binaire. Donc pour écrire par exemple 10 en binaire on note 1010, 42 donne 101010, 527 donne 100000111. Pour écrire 527, il faut donc plus que 8 bits (chiffres). Et c'est ça qui a fait planter la fusée...

Posté le

android

(31)

Répondre

Valeur maximum d'une donnée 8 bit en decimal : 256

Donc le bug viens du fait que la valeur de la variable était supérieur au maximum possible enregistrable.

a écrit : En fait, en informatique, comme tout le monde le sait, tout est codé avec des 0 et des 1. On appelle ça le code binaire. Donc pour écrire par exemple 10 en binaire on note 1010, 42 donne 101010, 527 donne 100000111. Pour écrire 527, il faut donc plus que 8 bits (chiffres). Et c'est ça qui a fait planter la fusée... 527 c'est : 1000001111
Codé sur 10 bits car on va jusqu'au bit "512".
512 + 8 + 4 + 2 + 1

Alors pour ceux qui voudraient en savoir plus, la fusée Ariane 5 était environ 2 fois plus grande qu'Ariane 4.
Par soucis d'économie, et le calculateur en question étant très efficace sur le premier modèle, ils ne l'ont pas repensé et l'ont utilisé tel quel.
Or, une fusée qui tremble en vol, ça aura tout de suite (beaucoup) plus de pêche si on pèse deux fois plus lourd.
Le calculateur a interprété ça comme une erreur, a fait remonter cette dernière, et un mécanisme automatisé a fait sauter le tout, fournissant l'un des potards les plus chers de l'histoire...
Il leur a fallu 1 ou 2 ans je crois pour trouver l'erreur (imaginez ressortir tous les plans pour les analyser...)

a écrit : Valeur maximum d'une donnée 8 bit en decimal : 256

Donc le bug viens du fait que la valeur de la variable était supérieur au maximum possible enregistrable.
Pour compléter, il est intéressant de savoir qu'une série de 8 bits (donc une suite de 8 "0" ou "1") est appelé octet. C'est bien ce qu'on utilise au quotidien, quand on dit qu'une photo pèse 2 Mo (Mega octet).
À savoir aussi, qu'en anglais on dit pas octet, mais Byte (abrégé B).
Donc 1 B = 1 o = 8 b (bits).
Vous pouvez rajouter les préfixes Mega (M), kilo (k) ou encore Giga (G) devant, l'égalité ne changera pas.
Donc attention quand on vous dit que vous telechargez à tant de Mo (ou MB), ou tant de Mb, c'est pas pareil !

Posté le

android

(18)

Répondre

a écrit : 527 c'est : 1000001111
Codé sur 10 bits car on va jusqu'au bit "512".
512 + 8 + 4 + 2 + 1
On est d'accord !

Posté le

android

(0)

Répondre

a écrit : J'ai rien compris ! Appart que y a eu une explosion ^^' Un bit permet de code 2 valeurs : 0 et 1. 8 bits permet de coder 2 puissance 8 valeurs soit 256. 256 combinaisons de 8 caractères à base de 0 et 1. Exemple : 01101110. C est ce qui a permis de coder l ensemble des touches du clavier actuel au passage. Or la valeurs de 9 bits contenait donc 9 caractères. Seul les 8 premiers ont du être retenus ce qui a provoqué une mauvaise commande.

Posté le

android

(2)

Répondre

Il me semble que ce depassement correspond a un bit signé, ainsi les commandes on du recevoir une donnée negative elors qu'elle devait être positive!

Posté le

android

(0)

Répondre

a écrit : Il y a un programmateur qui a dû se faire enguirlander... Un "programmateur" c'est un truc que tu as sur le mur pour piloter tes radiateurs...
Celui qui code c'est un développeur ou un programmeur.