Le bug le plus étrange que j’aie vu jusqu’ici
(engineering.gusto.com)Découverte et résolution d’un bug étrange
- Pendant une astreinte de l’équipe des outils internes, des utilisateurs du logiciel interne de Gusto ont subi des plantages du navigateur Chrome.
- Ce problème a provoqué diverses perturbations pour le service client.
- Pour le résoudre, de l’aide a été demandée à des collègues expérimentés, à l’équipe d’infrastructure produit et à l’équipe IT.
Premier indice
- Une tentative a été faite pour trouver un point commun entre les utilisateurs affectés.
- Tous les employés de Gusto n’étaient pas touchés, et le logiciel orienté client ne présentait aucun problème.
- Les autres pages web du logiciel interne fonctionnaient normalement.
- Les plantages survenaient de manière irrégulière, et le problème ne se produisait ni sur Safari ni sur Firefox.
Deuxième indice
- L’hypothèse a été posée que la version de Chrome pouvait être en cause.
- Chez certains utilisateurs, le problème semblait avoir été résolu après une mise à jour de Chrome, sans toutefois disparaître complètement.
- Il a aussi été supposé qu’une extension Chrome pouvait être responsable, mais le problème se reproduisait même sans extension.
Difficulté à reproduire le bug
- L’équipe d’infrastructure a demandé à tous les ingénieurs d’essayer de reproduire le problème.
- À l’exception de deux ingénieurs en Turquie, aucune équipe d’ingénierie n’a signalé de plantage.
- La fonction de rapport de crash de Chrome étant désactivée pour des raisons de sécurité, cela a compliqué l’enquête.
Un coup de chance décisif
- Un ingénieur à Denver a signalé que le problème était apparu après avoir téléchargé l’application de bureau Grammarly.
- Il a été constaté que supprimer l’application Grammarly puis redémarrer l’ordinateur résolvait le problème.
Des progrès
- Une fois le débogage rendu possible, plusieurs essais ont été menés pour identifier la cause.
- L’application interne principale était construite sur ActiveAdmin, mais les nouvelles parties utilisant React ne plantaient pas.
- En examinant la partie de code commune, il a été découvert que le menu déroulant
My Historyétait à l’origine du problème.
Résolution du problème
- Il a été confirmé que le fichier image
loader-spinner.gifprovoquait le problème. - Après avoir remplacé ce GIF par une autre image, la page ne plantait plus.
- Il n’est pas clair si c’est Grammarly ou Chrome qui a corrigé le problème, car le GIF d’origine ne fait désormais plus planter Chrome.
Conclusion
- Un GIF animé inattendu a finalement été la clé du débogage.
- Le problème a été résolu grâce à la curiosité et à la collaboration.
- Gusto offre la possibilité de travailler avec des personnes collaboratives et curieuses.
L’avis de GN⁺
Le point le plus important de cet article est la description détaillée du processus de découverte et de résolution d’un bug causé par une origine inattendue. Il montre la complexité et l’imprévisibilité du software engineering, tout en soulignant à quel point le travail d’équipe et la persévérance dans la résolution de problèmes sont essentiels. Il offre un exemple fascinant de la manière dont une équipe d’ingénierie peut collaborer pour résoudre un problème particulièrement déroutant, ce qui en fait une lecture très attrayante pour les personnes intéressées par l’ingénierie.
1 commentaires
Commentaires sur Hacker News
Étonnement et scepticisme face à un bug provoqué par un fichier GIF précis
Problème d’impression des soulignements pendant la rédaction d’un article de recherche par un professeur d’université
Partage d’une expérience de bug liée à Grammarly
Déception exprimée face à la correction du bug
Problème audio en dual boot entre Windows et Linux
Intérêt pour l’apparition de ce bug dans l’environnement web de 2023
Partage d’une expérience de bug liée aux outils d’accessibilité de Chrome
Partage d’une confusion causée par le paramètre de traduction de page
Partage d’une expérience de crash du bureau Linux causé par le CSS d’un site web
Avis selon lequel résoudre ce bug pourrait constituer une vulnérabilité de sécurité importante