Facebook corrige un bug responsable de 50% des plantages de son appli iOS

Alexandre Laurent
Publié le 14 août 2014 à 15h43
Facebook affirme avoir identifié et corrigé un bug responsable de plus de la moitié des plantages observés sur son application iOS. Il explique également pourquoi la résolution du problème a duré plusieurs mois.

00B4000005483715-photo-facebook-logo.jpg
Certains bugs ont la vie dure. Les ingénieurs de Facebook indiquent avoir résolu cette semaine un problème technique localisé depuis plusieurs mois au sein de l'application iOS dédiée au réseau social. Ce bug, limité aux terminaux Apple, était d'après eux à l'origine de plus de la moitié des plantages enregistrés par l'application. Soulagés sans doute par la fin de cette longue traque, deux des développeurs impliqués livrent un éclairage technique sur la source du problème, et expliquent pourquoi il a fallu aussi longtemps pour le résoudre.

Dans un premier temps, ils déclarent avoir constaté dernièrement que la première cause de crash observée au sein de l'application iOS se situait au niveau du framework Core Data, qui pour simplifier permet au développeur de manipuler sous forme d'objets les données stockées dans une base de données relationnelle. Spécifique à la programmation en monde Apple (OS X ou iOS), ce premier point explique pourquoi seule l'application iOS de Facebook était concernée.

Problème, Core Data est par définition un composant cœur, et les rapports de plantage analysés montraient que le problème pouvait se manifester de plusieurs façons distinctes. Pour affiner son diagnostic, l'équipe a donc tenté de déterminer à quelle période avaient pu débuter ces manifestations. Avec plusieurs centaines de développeurs impliqués sur des milliers de tickets différents, l'exercice se serait toutefois révélé vain.

Pour avancer, il convenait donc d'élaborer d'autres hypothèses, aboutissant vers des scénarios permettant d'isoler tel ou tel élément déclencheur. Entre autres tests, l'équipe a choisi de retravailler un pan de code de façon à parler directement à la base de données SQLite, sans passer par Core Data, alors que ce dernier était considéré comme l'une des sources du problème. La démarche se révéla judicieuse : une fois passé sur un environnement de test, le pan de code en question provoqua un message d'erreur explicite, aiguillant les développeurs vers une hypothèse, puis une autre.

De fil en aiguille, l'équipe finit par identifier que le problème ne se situe pas au niveau relationnel, mais à celui du réseau, avec un conflit dans la façon dont deux couches distinctes géraient un même objet. Une fois la faille identifiée, la résolution du problème n'aurait pris que quelques heures. « Les tâches du quotidien comme l'analyse des crashs ou la compréhension du code peuvent devenir de vrais défis de programmation », concluent les deux intéressés. On serait tenté d'ajouter que celui-ci ne prend jamais fin : fraîchement mise à jour vers la dernière version en date, l'application Facebook nous a gratifié d'un magnifique plantage jeudi matin.
Alexandre Laurent
Par Alexandre Laurent

Alex, responsable des rédactions. Venu au hardware par goût pour les composants qui fument quand on les maltraite, passé depuis par tout ce qu'on peut de près ou de loin ranger dans la case high-tech, que ça concerne le grand public, l'entreprise, l'informatique ou Internet. Milite pour la réhabilitation de Après que + indicatif à l'écrit comme à l'oral, grand amateur de loutres devant l'éternel, littéraire pour cause de vocation scientifique contrariée, fan de RTS qui le lui rendent bien mal.

Vous êtes un utilisateur de Google Actualités ou de WhatsApp ?
Suivez-nous pour ne rien rater de l'actu tech !
Commentaires (0)
Rejoignez la communauté Clubic
Rejoignez la communauté des passionnés de nouvelles technologies. Venez partager votre passion et débattre de l’actualité avec nos membres qui s’entraident et partagent leur expertise quotidiennement.
Abonnez-vous à notre newsletter !

Recevez un résumé quotidien de l'actu technologique.

Désinscrivez-vous via le lien de désinscription présent sur nos newsletters ou écrivez à : [email protected]. en savoir plus sur le traitement de données personnelles