Casestudie
Casestudie: krasj etter lang drift sporet til en håndtaklekkasje
Teknisk casestudie om en krasj som bare viste seg etter omtrent en måneds drift, og som ble snevret inn til en undersøkelse av håndtaklekkasje gjennom opprydding i observasjonspunktene og bedre logging.
Oversikt over casen
Casen gjelder en Windows-app som plutselig krasjet først etter omtrent én måneds sammenhengende drift. Vi tok utgangspunkt i å ordne observasjonspunktene, og arbeidet ble til slutt snevret inn til en undersøkelse med håndtaklekkasje i sentrum. Det avgjørende var at vi ikke bare fant selve årsaken, men også bestemte hvilke observasjoner som måtte på plass først.
Symptom
- Feilen viste seg ikke i løpet av noen dager, men bare etter langvarig drift
- Måten unntakene oppstod på, gjorde det vanskelig å avgjøre om det var en lekkasje
- Den oppstod bare på stedet, så det var nødvendig å forkorte tiden for å gjenskape den på utviklingsmaskinen
Begrensninger
- Det var ikke realistisk å vente en måned på hver gjenskaping
- Siden gjenoppkobling av kameraet og feilbaner var involvert, holdt det ikke med logger fra normale kjøringer
- Det måtte være mulig å observere kontinuerlig hvilken ressurs som økte
Hva vi observerte
- En heartbeat med
Handle Count,Private BytesogThread Count - Grenselogger for oppstart av økter, gjenoppkobling og avslutning
- Parvise livssykluslogger for
create/open/registerogclose/dispose/unregister
Slik avgrenset vi årsaken
I stedet for å jage selve «krasjen etter lang drift» snevret vi først gjenskapingen inn til feilbanene rundt gjenoppkobling og tidsavbrudd. Resultatet var at vi kunne vurdere en håndtaklekkasje som mer sannsynlig enn en minnelekkasje, og konsentrere observasjonen om det.
Slik forbedret vi situasjonen
- Vi la til flere overvåkingspunkter, slik at vi kunne følge utviklingen over tid og ikke bare øyeblikket for krasjen
- Vi ryddet i grenseloggene, slik at det ble lettere å følge hvilken del som åpnet og hvilken som lukket
- Vi ordnet funnene slik at de kan føres videre i den påfølgende testinfrastrukturen for feilbaner
Tjenester denne casen henger sammen med
Denne casen henger sammen både med Feilsøking og rotårsaksanalyse, som avgrenser feil som bare viser seg etter langvarig drift, og med Windows-apputvikling, som får orden på logging, gjenoppkobling og driftsobservasjon fra implementeringssiden.
Rådfør deg med oss her
Hvis du har en utfordring som ligger nær innholdet på denne siden, kan du rådføre deg med oss og legge ved en beskrivelse av dagens situasjon og hva slags støtte du trenger.