Le jour où un bug logiciel a presque mis fin à la mission du Rover Spirit sur Mars

le 28/01/2013, par Jean Pierre Blettner avec IDG News Services, Terminaux et Systèmes, 705 mots

Des délais serrés, une décision de ne pas tester un logiciel au-delà d'une certaine limite, et c'est la mission d'exploration de Mars qui a bien failli s'arrêter avant d'avoir commencé. Des problèmes que tous les informaticiens rencontrent tous les jours.

Le jour où un bug logiciel a presque mis fin à la mission du Rover Spirit sur Mars

Le vendredi 25 Janvier 2013, a marqué le neuvième anniversaire de l'arrivée réussie sur Mars du Rover Opportunity, le robot d'exploration martien qui fonctionne toujours jusqu'à aujourd'hui. Cependant, son frère jumeau le Rover Spirit aura fêté le moins joyeux anniversaire de son arrivée quasi simultanée il y a 9 ans et la presque fin prématurée de sa mission due à un bug logiciel, dû principalement à une anomalie de gestion de la mémoire flash.

Les deux Rovers étaient arrivés de manière réussie sur Mars en Janvier 2004. Et les deux premières semaines, ils s'étaient promenés joyeusement pour explorer la planète. Cependant, le 21 Janvier, l'équipe de la Nasa n'obtenait plus aucun signal depuis Spirit. Après un test, l'équipe était capable d'obtenir une réponse mais pas plus qu'un simple bip, signifiant que le Rover Spirit était encore vivant. 

Après de multiples tests, la conclusion était que le problème était situé soit dans la carte d'interface avec la radio, soit qu'il y avait un problème avec le logiciel de vol. La panique commençait à monter dans l'équipe. Au bout de deux jours supplémentaires, l'équipe avait récupéré des données de diagnostic, dessinant ce qui se passait, sans savoir pour autant pourquoi cela arrivait. Le logiciel de vol était pris dans un cycle de reboot permanent.

A chaque fois qu'il essayait de redémarrer, il rencontrait une erreur, ce qui déclenchait un nouveau redémarrage. Le problème se trouvait dans la mémoire Flash du Rover, où le système de fichiers était stocké.

Au bout du 20ème jour solaire, l'équipe de la Nasa ne connaissait pas la cause racine du problème, elle savait que comme le Rover ne pouvait pas s'arrêter proprement, comme il était censé le faire chaque nuit, sa batterie se déchargeait et qu'il était sur le point de surchauffer, et que sa mission allait s'arrêter avant même d'avoir débuté.  

Redémarrer sans accéder à la mémoire Flash ...



Redémarrer sans accéder à la mémoire Flash


Finalement, le jour suivant, l'équipe arriva à faire sortir le Rover de son cycle de reboot en le plaçant en mode « crippled » (invalide). Cela permettait au logiciel de vol de démarrer sans accéder à la mémoire Flash, et d'utiliser à la place la mémoire RAM pour y simuler un système de fichiers. En faisant cela, l'équipe arriva à arrêter le Rover afin qu'il puisse recharger ses batteries. Cela offrait aussi un répit pour diagnostiquer l'origine de la panne et trouver une solution. 

L'équipe de la Nasa trouva que le problème était une combinaison d'une faille dans la conception de la bibliothèque DOS (Disk Operating System) , d'un bug dans un logiciel fourni par une tierce partie, et de plusieurs erreurs de configuration.  Le logiciel tiers effectuait le miroir de la mémoire flash dans la RAM, qui était en quantité insuffisante de moitié. A cause de la manière dont le DOS gérait le système de fichiers, celui-ci ne cessait de grossir en taille même quand les fichiers étaient supprimés.

Au bout du compte, quand le logiciel de vol essayait de redémarrer, de la nouvelle mémoire ne pouvait pas être allouée, ce qui déclenchait une erreur, ce qui déclenchait un nouveau redémarrage, etc ... Au bout de 32 jours solaires, l'équipe réussissait à corriger le bug, reformatait la mémoire Flash et faisait revenir Spirit à la vie. 

Le Rover Spirit a continué à opérer jusqu'au 22 mars 2010, bien au-delà de ses 90 jours solaires prévus initialement. Au final, il fut conclu que le problème aurait pu être évité.

Le calendrier réduit, il n'y avait que trois ans entre la conception et le lancement, a été considéré comme un facteur ayant contribué au problème, car il avait mené à un développement et à des tests incomplets. Alors que les problèmes avec le système de fichiers DOS étaient connus au moment du développement, les connaître complètement et déterminer le paramétrage correct pour les paramètres de configuration avaient été considérés comme de faible priorité et n'avait pas été fait. 

Cela sonne comme une vieille histoire pour les projets informatiques : courir pour réaliser le projet et tester plus tard. Trop tard.  

L'IA vient renforcer la suite Webex de Cisco

L'équipementier de San José passe la seconde avec l'intelligence artificielle. En proposant une palette d'outils basés sur l'IA dans sa suite Webex, Cisco veut offrir des expériences plus personnalisées et...

le 30/03/2023, par Célia Séramour, 710 mots

La Justice américaine enquête sur la vente de matériels Cisco...

Selon le Département de la Justice des États-Unis, depuis plusieurs années des entreprises ont vendu des matériels Cisco usagés, trafiqués en modèles neufs et soi-disant plus récents. Une fraude qui a rapporté...

le 13/07/2022, par Tim Greene, IDG NS (adapté par Jean Elyan), 715 mots

Red Hat lance des fonctions edge pour RHEL et de sécurité pour...

Lors de l'événement Summit organisé du 10 au 11 mai à Boston, Red Hat a annoncé des fonctionnalités edge pour sa distribution RHEL 9.0, et des outils de sécurité pour sa plateforme Advanced Cluster Security...

le 12/05/2022, par Jon Gold, IDG NS ( adapté par Jean Elyan), 545 mots

Dernier dossier

Les white-box sont-elles l'avenir de la commutation réseau ?

Et si vous pouviez gérer vos commutateurs de centres de données et vos routeurs de la même façon que vos serveurs et ainsi réduire les coûts des dépenses en capital ? C'est la promesse des white-box qui amènent des systèmes d'exploitation réseau open source fonctionnant sur du matériel courant.Pour en avoir le coeur net, nous avons testé Cumulus...

Dernier entretien

Céline Polo

DRH du groupe iliad

"Nous recrutons dans des métiers en tension, en particulier sur l'infrastructure réseau, pour lesquels il y a...