Secunda care a dărâmat uriași pe 30 iunie

0
Publicat:
Ultima actualizare:

		    Pentru problema de pe 30 iunie, soluția fusese găsită cu luni în urmă. FOTO: wired.com
Pentru problema de pe 30 iunie, soluția fusese găsită cu luni în urmă. FOTO: wired.com

Ultimul minut al zilei de 30 iunie 2012 a avut o secundă în plus, cea pierdută de Pământ în mișcarea de rotație. În urma acestei secunde adăugate, mai multe site-uri web s-au prăbușit, serverele nereușind să mai țină socoteala timpului.

Această ajustare era necesară pentru a elimina discrepanța dintre timpul atomic și cel astronomic. În funcție de cât de repede Pământul se rotește, este adaugată o secundă în plus pentru a le păstra sincronizate cu rotația planetei. Acest fapt păstrează echilibrul, astfel încât să nu se ajungă ca apusul Soarelui să fie dimineața. Deși oamenii n-au probleme cu adaptarea la secunda suplimentară, computerele nu sunt la fel de rapide și pe 30 iunie Internetul aproape s-a prăbușit.

Unul dintre cele mai mari agregatoare de informaţii online, Reddit, a avut probleme, dar le-a pus în primă fază pe seama unei scăderi de viteză din cauza dificultăților pe care le-a întâmpinat Amazon în ultimele 24 de ore. “Doar părea că rețeaua se mișcă foarte încet”, a spus Jason Harvey, unul dintre administratorii care supervizează activitatea Reddit. Dar după jumătate de oră s-a dovedit că problemele sunt la propriile servere care rulează sistemul de operare Linux.

Kernelul (nucleul sistemului de operare) din Linux are un subsistem denumit “hrtimer” (temporizator de înaltă rezoluție). Acesta nu s-a adaptat adăugării secundei și a creat hiperactivitate pe servere, ceea ce a dus la blocarea procesoarelor. Reddit n-a fost singurul care a avut probleme. Acest tip de dificultăți apar de fiecare dată când este o ajustare de timp. În ianuarie 2009, schimbarea a afectat Solaris, sistemul de operare al Sun Microsystems și un pachet de software de la Oracle.

Opinia lui Linus Torvalds, creatorul Linux

“La fiecare astfel de ajustare a timpului găsim ceva, a spus Linus Torvalds. Este enervant, pentru că e un caz clasic de cod care nu ajunge să fie rulat și, deci, nu este testat în condiții normale”. Totuși, scăparea din kernelul Linux-ului a fost reparată de hackerul John Stultz, în martie, dar unele versiuni de Linux nu au fost actualizate.

Întrebat ce se întâmplă cu adevărat în hrtimer, Linus Torvalds a spus că doar Stultz știe foarte bine, fiind omul îndreptățit pentru a fi întrebat. Dar, în teorie, este destul de simplu. Hrtimer este apelat când o aplicație este în modul “hibernare” și așteaptă ca sistemul de operare să încheie niște operații. În unele cazuri, își fixează o alarmă care se declanșează când sistemului de operare îi ia prea mult timp. Pe 30 iunie, când s-a adăugat secunda, hrtimerele erau înaintea întregului sistem și astfel s-a declașant alarma care a dus la pornirea mai multor aplicații care, la rândul lor, au supraîncărcat procesoarele.

La Reddit a mai fost ceva

Cei de la Reddit însă au văzut ceva diferit. Serverele lor rulau o bază de date open source cunoscută drept “Cassandra” care a fost programată în limbajul Java și rulează peste Linux. Din spusele lui Jason Harvey, Cassandra n-a reușit să pună pauză proceselor Java și acestea au intrat într-o buclă care ocupa procesoarele artificial. Soluția a fost restartarea serverelor, ceea ce a dus la căderea site-ul pentru 30-40 de minute și, per total, a fost offline o oră jumate pentru utilizatori.

Alte cazuri s-au înregistrat cu o zi înainte, dar pentru acestea lucrurile au stat puțin altfel. Sistemele ca Linux se bazează pe Network Time Protocol (NTP) prin care sunt conectate la ceasurile atomice pentru a verifica timpul. Vineri, NTP a transmis avertismente către servere că anul acesta o zi va avea cu o secundă mai mult. În urma acestui fapt, câteva servere Opera s-au blocat.

Perioada de calm

Industria IT nu s-a întâlnit prea des, în ultimii 15 ani, cu aceste momente de ajustare a timpului, dar tocmai asta poate fi o parte a problemei, susține Steve Allen, programator la Observatorul Lick. “Din 1999 până în 2005, nu au fost prea multe secunde adăugate. Și toate noțiunile despre procesoare și stocare online au venit într-o perioadă de calm temporal”. Ultima ajustare este cea din 2008. “A fost o perioadă mare de timp în care oamenii au creat tot felul de lucruri și n-au trebuit să se gândească cum se vor adapta la timp.”

Soluția, cu împărțire, de la Google

Pentru ca sistemele să se ferească de această eroare, Mario Marongiu, de la Opera Software, sugerează ca sistemele NTP să fie oprite pentru o secundă. “Practic, păcălești NTP, tot adaugă secunda, dar nu face acel pas în spate”, a spus acesta. Și mai recomandă soluția celor de la Google. Toamna trecută, Google a descris o metodă, denumită “leap smear”, prin care au modificat NTP și le-au făcut să adauge milisecunde de-a lungul unei perioade mari de timp. 

Tehnologie



Partenerii noștri

Ultimele știri
Cele mai citite