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 Bytes ja Thread Count
  • Istunnon aloituksen, uudelleenyhdistämisen ja päättymisen rajakohtalokit
  • Pareittain kirjattavat elinkaarilokit: create/open/register ja close/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.

Takaisin etusivulle