Ariane 5, comme toutes les fusées ou missiles balistiques utilise un certain nombre d’instruments de mesure afin de récolter des données sur son environnement, sa trajectoire ou son comportement en vol.
Un entier relatif stocké sur 16 bits peut prendre une valeur allant de -32768 à +32767. Si on essaye de convertir un nombre supérieur ou inférieur à cet intervalle, on va avoir ce qu’on appelle un dépassement d’entier.
Chaque civilisation démarre avec un niveau d'agressivité et celui de Gandhi était le plus bas du jeu : 1.
Mais la variable responsable de ça ne gère pas les nombres négatifs. Donc au lieu de se maintenir à son plancher de 0, elle devient… 255, soit la valeur maximale
Vous vous souvenez quand j’ai dit que c’était plus important qu’un simple bug ? Bah on y est là. C’est ce qui a suivi le problème
- Enregistrer l’état du programme et de la mémoire au moment de l’erreur
- Éteindre l’ordinateur du SRI
Heureusement 0.05 secondes plus tard, le deuxième SRI s’active pour prendre le relais…
Oui et non. Le vrai problème dans cette histoire, c’est la gestion des risques.
Sauf que sur les 7, seules 4 étaient protégées des dépassements.
Et la partie du programme gérant la vitesse verticale était protégée, elle.
Des tests et simulation au sol auraient également pu alerter les ingénieurs sur ce problème.