Aktuelno Saopštenje

Kako smo otkrili grešku koja je blokirala PRO nagrade za upload

Sadržaj

Na studenti.rs, svaki odobren dokument donosi autoru PRO pristup i besplatna preuzimanja. Taj sistem radi automatski — pošalješ dokument, prođe pregled, objavi se, i nagrada se aktivira.

Ili barem tako treba da bude.

Šta se desilo

Krajem januara uveli smo poboljšanje u procesu obrade dokumenata. Objave sada idu kroz zakazani red, umesto da se objavljuju odmah, što daje ravnomerniji ritam novih dokumenata na platformi.

Promena je radila kako treba — dokumenti su se objavljivali na vreme, autori su dobijali email potvrdu, sve je izgledalo u redu.

Problem je bio u tome što korak koji aktivira PRO nagradu nije bio pravilno povezan sa novim sistemom zakazanih objava. Nagrada se čuvala kao “na čekanju” dok dokument čeka objavu, ali u trenutku objave taj signal nije stizao do sistema za dodelu.

Kako smo saznali

Nismo mi otkrili grešku — javila nam se korisnica putem emaila. Primetila je da joj PRO pristup nije aktiviran nakon što je njen dokument objavljen.

Hvala, Marice.

Kad smo proverili njen nalog, videli smo da je nagrada zaista ostala zaglavljena. Onda smo proverili sve ostale objave iz istog perioda — i pronašli još korisnika sa istim problemom. Srećom, greška je trajala samo par dana i pogodila je dvadesetak korisnika.

Zanimljiv detalj: naš monitoring nije prijavio ništa. Nije bilo grešaka u logovima, nije bilo odstupanja u analitici. Sistem je tiho preskakao korak koji nikad nije ni bio pozvan. To je najopasnija vrsta baga — ona koja ne pravi buku.

Šta smo uradili

  1. Pronašli uzrok — sistem za zakazane objave koristio je mehanizam koji nije aktivirao naš handler za nagrade.
  2. Ispravili kod — povezali smo ispravan handler i dodali logovanje na svim kritičnim tačkama, tako da ovakva greška više ne može proći neprimećeno.
  3. Napisali automatske testove — end-to-end test koji simulira ceo put: upload, zakazana objava, provera nagrade. Pokreće se na svakom deployu.
  4. Napravili alat za oporavak — komanda koja pronalazi i ispravlja zaglavljene nagrade, sa modom za sigurnu proveru pre izvršavanja.
  5. Aktivirali sve nagrade — svi pogođeni korisnici su dobili PRO pristup i preuzimanja koja im pripadaju.
  6. Obavestili sve pogođene korisnike — svako je dobio lični email sa objašnjenjem i pozivom da nam se javi ako primeti bilo šta čudno.

Šta smo naučili

Greška koja ne pravi buku je gora od one koja ruši sistem. Kad nešto pukne glasno, reaguješ odmah. Kad sistem tiho preskoči korak, možeš to saznati tek kad ti se korisnik javi — ili nikad.

Zato smo posle ovog slučaja prošli kroz sve slične delove koda i dodali logovanje i na mestima gde “ne bi trebalo da pukne”. Jer očigledno — može.

Ako si među korisnicima koji su bili pogođeni i primetiš bilo šta neobično na svom nalogu, javi nam se na [email protected].