Fallstudier

Fallstudie: Så spårade vi en krasch efter lång drifttid till en handle-läcka

Teknisk fallstudie om en krasch som bara uppstår efter ungefär en månads drift och som genom strukturerade observationspunkter och utökad loggning avgränsades till en utredning av en handle-läcka.

Översikt över fallstudien

Den här fallstudien gäller en Windows-app som plötsligt kraschade först efter ungefär en månads sammanhängande drift. Vi började med att ordna observationspunkterna och avgränsade till sist utredningen till en handle-läcka. Det avgörande var att vi inte bara tog fram själva orsaken, utan också bestämde vilka observationer som skulle ordnas först.

Symptom

  • Felet visade sig inte inom några dagar, utan kraschen kom först efter lång drifttid
  • Det gick inte att avgöra enbart utifrån hur undantagen uppträdde om det rörde sig om en läcka
  • Felet uppstod bara i driftmiljön, så på utvecklingsdatorn måste förutsättningarna för att återskapa det komprimeras

Begränsningar

  • Att vänta en månad på varje återskapande var inte realistiskt
  • Eftersom kameraåteranslutning och felvägar ingick räckte det inte med loggar från normalfallet
  • Det måste gå att löpande observera vilken resurs som växer

Vad vi observerade

  • En heartbeat med Handle Count, Private Bytes och Thread Count
  • Gränsloggar för sessionsstart, återanslutning och avslut
  • Parvisa livscykelloggar för create/open/register och close/dispose/unregister

Hur vi avgränsade orsaken

Vi jagade inte den ”krasch efter lång drifttid” som sådan, utan komprimerade först återskapandet till felvägarna kring återanslutning och timeout. Därefter kunde vi bedöma att det var mer rimligt att misstänka en handle-läcka än en minnesläcka, och kunde koncentrera observationerna dit.

Hur vi förbättrade läget

  • Vi lade till övervakade värden så att vi kunde följa ökningen över tid och inte bara läget vid själva kraschen
  • Vi ordnade gränsloggarna så att det blev lättare att följa vilken komponent som öppnade och vilken som stängde
  • Vi sammanställde utredningsresultaten så att de enkelt kan kopplas till den senare testinfrastrukturen för felfall

Tjänster som den här fallstudien hänger ihop med

Den här fallstudien hänger ihop med både felsökning och orsaksanalys, där fel som bara uppstår efter lång drifttid avgränsas, och Windows-apputveckling, där loggning, återanslutning och observation under drift ordnas från implementationssidan.

Rådfråga oss här

Om den här sidan liknar den situation du står inför kan du rådfråga oss och beskriva nuläget och vilken typ av stöd du behöver.

Tillbaka till startsidan