Case
Nedbrud efter langtidsdrift sporet til en handle-lækage – casestudie
Teknisk case om et nedbrud, der kun opstod efter en måneds drift, og som blev indsnævret til en undersøgelse af en handle-lækage ved hjælp af observationspunkter og udbygget logning.
Overblik over casen
Casen handler om en Windows-app, der kun gik ned efter ca. 1 måneds sammenhængende drift. Vi begyndte med at fastlægge observationspunkterne og indsnævrede til sidst undersøgelsen til en handle-lækage. Det afgørende var ikke kun selve årsagen, men at vi besluttede, hvilke observationer der skulle sættes op først.
Symptomer
- Nedbruddet opstår ikke i løbet af nogle få dage, men kun efter længere tids drift
- Ud fra undtagelsernes forløb alene er det svært at afgøre, om der er tale om en lækage
- Fejlen opstår kun i driftsmiljøet, og på udviklingsmaskinen er det nødvendigt at indsnævre betingelserne for at genskabe den
Begrænsninger
- Det er urealistisk at vente en måned på at genskabe fejlen
- Genopkobling af kameraet og fejlstier er med, så logfiler fra det normale forløb er ikke nok
- Vi skulle løbende kunne observere, hvilken ressource der vokser
Hvad vi observerede
- Heartbeat med
Handle Count,Private BytesogThread Count - Grænselogfiler for sessionsstart, genopkobling og afslutning
- Lifecycle-logfiler med par af
create/open/registerogclose/dispose/unregister
Sådan isolerede vi fejlen
Vi fulgte ikke bare nedbruddet ved langtidsdrift, som det stod, men indsnævrede først betingelserne for at genskabe det til fejlstierne omkring genopkobling og timeout. Det viste, at en handle-lækage var en mere plausibel hypotese end en hukommelseslækage, og vi kunne samle observationerne dér.
Sådan forbedrede vi det
- Vi udvidede de overvågede målinger, så vi kan følge tendensen til vækst og ikke kun tidspunktet for nedbruddet
- Vi forbedrede grænselogfilerne, så det er nemmere at følge, hvilket ansvarsområde der åbnede noget, og hvilket der lukkede det
- Vi strukturerede resultaterne af undersøgelsen, så de nemt kan føres videre til en testinfrastruktur for fejlscenarier
Ydelser, som casen hænger sammen med
Casen hænger sammen med både fejlfinding og årsagsanalyse, hvor fejl, der kun opstår efter langtidsdrift, isoleres, og Windows-appudvikling, hvor logning, genopkobling og driftsobservation udbygges i selve implementeringen.
Søg rådgivning her
Hvis denne side beskriver en udfordring, der ligner din, så bed os om rådgivning og beskriv din nuværende situation og den form for hjælp, du har brug for.