Tapaustutkimus
Tapaustutkimus: pitkän käyttöjakson jälkeisen kaatumisen jäljitys kahvanvuotoon
Tekninen tapaustutkimus kaatumisesta, joka ilmenee vasta noin kuukauden käytön jälkeen ja jonka selvitys rajattiin kahvanvuotoon havaintopisteiden jäsentämisellä ja lokituksen lisäämisellä.
Tapauksen yhteenveto
Tapaus koski Windows-sovellusta, joka kaatui yllättäen vasta noin kuukauden yhtäjaksoisen käytön jälkeen. Työ alkoi havaintopisteiden jäsentämisestä, ja lopulta selvitys rajattiin kahvanvuodon ympärille. Olennaista oli, että päätettiin paitsi itse syystä myös siitä, mitkä havainnot kannattaa saada kuntoon ensin.
Oire
- Vika ei ilmene muutamassa päivässä, vaan kaatuminen tapahtuu vasta pitkäaikaisen käytön jälkeen
- Pelkästä poikkeuksen ilmenemistavasta on vaikea päätellä, onko kyse vuodosta
- Vika esiintyy vain käyttökohteessa, joten kehityskoneella toistaminen vaatii tiivistämistä
Rajoitteet
- Kuukausien mittainen toistamisen odottaminen ei ole realistista
- Kameran uudelleenyhdistäminen ja virhepolut kuuluvat asiaan, joten pelkät normaalipolun lokit eivät riitä
- Oli voitava seurata jatkuvasti, mikä resurssi kasvaa
Mitä havainnoimme
- Sykemittaukset (heartbeat) arvoille
Handle Count,Private BytesjaThread Count - Istunnon aloituksen, uudelleenyhdistämisen ja päättymisen rajakohtalokit
- Pareittain kirjattavat elinkaarilokit:
create/open/registerjaclose/dispose/unregister
Miten rajasimme ongelman
Emme lähteneet jäljittämään pitkäkestoista kaatumista sellaisenaan, vaan tiivistimme toistamisen uudelleenyhdistämisen ja timeoutien ympärillä oleviin virhepolkuihin. Tämän perusteella oli perustellumpaa epäillä kahvanvuotoa kuin muistivuotoa, ja havainnointi voitiin keskittää siihen.
Miten tilannetta parannettiin
- Seurattavia kohteita lisättiin, jotta voidaan seurata kasvusuuntausta eikä vain kaatumishetkeä
- Rajakohtalokit jäsenneltiin niin, että on helpompi seurata, mikä vastuualue avasi resurssin ja mikä sulki sen
- Selvityksen tulokset jäsenneltiin muotoon, jonka on helppo liittää jatkossa virhepolkujen testausperustaan
Palvelut, joihin tapaus liittyy
Tapaus liittyy sekä palveluun Vianetsintä ja juurisyyanalyysi, jossa rajataan vain pitkän käytön jälkeen ilmeneviä vikoja, että palveluun Windows-sovelluskehitys, jossa lokitusta, uudelleenyhdistämistä ja käytönaikaista havainnointia kehitetään toteutuksen puolelta.
Neuvottele kanssamme
Jos tämä sivu vastaa ongelmaa, jonka parissa työskentelette, pyytäkää meiltä neuvoa kertomalla nykyinen tilanne ja millaista tukea tarvitsette.