É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 BytesetThread Count - Les limites entre démarrage, reconnexion et fin de session
- Des journaux de cycle de vie mettant en regard
create/open/registeretclose/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.