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 BytesochThread Count - Gränsloggar för sessionsstart, återanslutning och avslut
- Parvisa livscykelloggar för
create/open/registerochclose/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.