Étude de cas

D'un plantage après un mois à une fuite de handles

Étude de cas sur un plantage n'apparaissant qu'après un mois, ramené à l'analyse d'une fuite de handles grâce à des points d'observation et des journaux mieux conçus.

Présentation du cas

Cette étude concerne une application Windows qui ne plantait qu’après environ un mois de fonctionnement continu. Nous avons commencé par organiser les points d’observation, puis concentré l’enquête sur une fuite de handles. L’essentiel n’était pas seulement la cause finale, mais le choix de ce qu’il fallait observer en premier.

Symptôme

  • Aucun problème pendant plusieurs jours ; le plantage n’apparaissait qu’après une longue exécution
  • La forme de l’exception ne permettait pas de conclure immédiatement à une fuite
  • Le phénomène se produisait sur le terrain et le scénario devait être raccourci sur la machine de développement

Contraintes

  • Attendre un mois à chaque tentative de reproduction n’était pas réaliste
  • Les reconnexions de caméra et les chemins d’erreur rendaient les journaux du fonctionnement normal insuffisants
  • Il fallait suivre dans le temps la croissance des différentes ressources

Ce que nous avons observé

  • Un heartbeat comprenant Handle Count, Private Bytes et Thread Count
  • Les limites entre démarrage, reconnexion et fin de session
  • Des journaux de cycle de vie mettant en regard create/open/register et close/dispose/unregister

Comment nous l’avons réduit

Au lieu de poursuivre directement un vague « plantage après une longue durée », nous avons raccourci le scénario autour des reconnexions et des chemins d’échec. Les observations ont alors rendu plus plausible une fuite de handles qu’une fuite mémoire, ce qui a permis de concentrer l’enquête.

Comment nous l’avons amélioré

  • Ajout d’indicateurs permettant de suivre la tendance avant le plantage, et non le seul instant final
  • Amélioration des journaux de frontière pour voir quelle responsabilité avait ouvert ou fermé une ressource
  • Organisation des résultats afin de les réutiliser dans une base de tests des scénarios d’erreur

Services associés à cette étude de cas

Cette étude relève de l’analyse de dysfonctionnements et de la recherche de cause pour les incidents qui n’apparaissent qu’après une longue exécution, et du développement d’applications Windows pour améliorer les journaux, les reconnexions et l’observabilité en exploitation.

Contactez-nous

Si cette page correspond à votre situation, décrivez-nous le contexte actuel et le type d’aide dont vous avez besoin.

Retour à l’accueil