Case

Casestudy: een crash na langdurig bedrijf teruggebracht tot een handle-lek

Technische case over een crash die pas na ongeveer een maand bedrijf optreedt: met geordende meetpunten en uitgebreidere logging is het onderzoek teruggebracht tot een handle-lek.

Overzicht van de case

Deze case gaat over een Windows-applicatie die alleen na ongeveer een maand onafgebroken bedrijf plotseling crashte. Wij begonnen met het ordenen van de meetpunten en hebben het onderzoek uiteindelijk toegespitst op een handle-lek. Het gaat hier niet alleen om de oorzaak zelf: het belangrijkste was dat werd bepaald welke observaties als eerste op orde moesten zijn.

Symptoom

  • Het probleem treedt niet binnen enkele dagen op, maar alleen na langdurig bedrijf
  • Op basis van de uitzondering alleen is moeilijk te beoordelen of er sprake is van een lek
  • Het treedt alleen op de werkvloer op; op ontwikkelmachines moet de reproductie worden teruggebracht tot een korter scenario

Randvoorwaarden

  • Maandenlang wachten op een reproductie is niet realistisch
  • Omdat het opnieuw verbinden van de camera en foutpaden een rol spelen, volstaan logs van het normale verloop niet
  • Het moest mogelijk zijn om voortdurend te volgen welke resources toenemen

Wat wij hebben waargenomen

  • Een heartbeat van Handle Count, Private Bytes en Thread Count
  • Grenslogs voor het begin van een sessie, het opnieuw verbinden en het einde
  • Lifecycle-logs met bij elkaar horende paren: create/open/register en close/dispose/unregister

Hoe wij het probleem hebben geïsoleerd

Wij zijn niet meteen de “crash bij langdurig bedrijf” zelf gaan najagen, maar hebben de reproductie eerst teruggebracht tot de foutpaden rond opnieuw verbinden en timeouts. Daardoor konden wij concluderen dat een handle-lek aannemelijker was dan een geheugenlek, en konden wij de observatie daarop concentreren.

Hoe wij het hebben verbeterd

  • Wij hebben meer te bewaken items toegevoegd, zodat niet alleen het moment van de crash, maar ook de groeitrend zichtbaar is
  • Wij hebben de grenslogs verbeterd, zodat gemakkelijker te volgen is welk onderdeel een handle opende en welk onderdeel die weer sloot
  • Wij hebben de onderzoeksresultaten zo geordend dat ze eenvoudig aansluiten op een latere testinfrastructuur voor foutscenario’s

Diensten waar deze case bij aansluit

Deze case sluit aan bij zowel Foutanalyse en oorzaakonderzoek, waarmee wij storingen isoleren die pas na langdurig bedrijf optreden, als Windows-applicatieontwikkeling, waarmee wij logging, opnieuw verbinden en observatie tijdens bedrijf vanuit de implementatie op orde brengen.

Vraag ons om advies

Heeft u een vraagstuk dat aansluit bij de inhoud van deze pagina? Bespreek het dan met ons en laat ons weten wat de huidige context is en welke ondersteuning u nodig hebt.

Terug naar home