Käyttäjältä saapuneessa viestissä kerrottiin että kätkön GC2D6AW hälytys oli saapunut kahteen kertaan.
Tutkiessani asiaa selvisi että hälytys tosiaan oli lähtenyt ja kirjattu kahteen kertaan. Vastaavia tuplatapahtumia löytyi keväästä lähtien muutaman muunkin kätkön osalta.
Vaikka aiemmista ongelmista ei kännyhälyn kuvauksen mukaisesti "Mahdollisista ongelmista käyttäjän tulee reklamoida välittömästi ongelman havaittuaan sivuston joka sivun alalaidasta löytyvän Yhteydenotot -osuuden kautta." olekaan ilmoiteltu niin kaikki tuplahälytykset on nyt hyvitetty käyttäjille ja pahoittelen tapahtunutta!
Pyydän myös ilmoittamaan pikaisesti mikäli ongelmia kännyhälyssä on, nytkin tämä vika ehti olemaan kuukausikaupalla ja se merkitsee aina hankalampaa hyvitystietojen keräystä ja suurempaa kulua hyvityksistä.
Vian tekninen kuvaus
Hälytysjärjestelmäprosessi käynnistyy minuutin välein. Prosessi pyytää ensin mahdolliset uudet kätköt tietokannasta ja tämän jälkeen merkitsee kantaan saadut kätköt käsittelyn alla oleviksi ja näin estää kätköjen uudelleen käsittelyn mikäli sama prosessi ehtii käynnistyä uudelleen eli minuutin aikana ehditä hoitamaan tietojen keräystä gc.comin apista ja hälytysten lähetystä.
Teknisesti em. kuviossa ei pitäisi olla ongelmia eikä tuplahälytyksiä pitäisi päästä syntymään. Koska näin kuitenkin on tapahtunut niin oletettava tapahtumakuvio on seuraava:
Tietokantapalvelimessa on ollut jotain ongelmaa ja ennen kuin prosessi on käynnistymisen jälkeen saanut vastauksena uudet kätköt sekä ehtinyt merkitä ne käsittelyn alla olevaksi, onkin prosessi ehtinyt käynnistymään uudelleen. Tällöin sen uusien kätköjen pyyntö on saanut vastauksena samat uudet kätköt kuin edellinen prosessi ja näin kaksi yhtäläistä prosessia on ollut käynnissä rinnakkain. Prosessit ovatkin nätisti menneet käsi kädessä; lokiin on kirjautunut molempien prosessien samat vaihteet nätisti peräkkäin
Uusien kätköjen valvonta- ja hälytysprosessissa ei voi käyttää normaalia "ei suoriteta jos on jo käynnissä" -estoa koska esim. gc.comin apin ongelmat voivat aiheuttaa prosessin ylipitkän suorituksen. Tällöin uusien kätköjen käsittely jäisi jumiin eikä hälytyksiäkään lähtisi.
Niinpä em. ongelmatilanne on nyt pyritty estämään lukkotiedostolla. Prosessi tarkastaa käynnistyessään lukkotiedoston olemassaolon ja mikäli tiedosto löytyy, sen viimeisemmän käsittelyhetken. Jos tiedoston luontiaika on liian tuore prosessi päättyy, muutoin prosessi päivittää lukkotiedoston käsittelytiedon ja jatkaa normaalisti.
Tämän pitäisi nyt varmistaa ettei tuplahälytyksiä enää lähde. Toki tästäkin löytyy teoreettinen mahdollisuus ongelmaan lukkotiedoston suhteen uskomattoman sopivasti ajoittuvissa prosesseissa mutta ehkäpä sitä tilannetta ei tapahdu
Kännyhälytyksiä tuplana
Kännyhälytyksiä tuplana
7.7.2018 jälkeen kirjoittamani viestit olen kirjoittanut yksityishenkilönä ja kätköilijänä "haksu10", en sivustoon liittyvänä taikka sen ylläpitäjänä.
Kyseistä päivämäärää edeltävät viestit voivat olla sivustoon liittyviä ylläpidollisiakin viestejä.
Kyseistä päivämäärää edeltävät viestit voivat olla sivustoon liittyviä ylläpidollisiakin viestejä.