Alfonso Maruccia

Il secondo che crasha il Web

L'adeguamento degli orologi mondiali al rallentamento della rotazione terrestre provoca problemi ai sistemi informatici. Disservizi per bacheche Web e per alcuni voli di linea

Roma - Magari non avrà avuto lo stesso effetto (pratico ma soprattutto psicologico-mediatico) dell'oramai mitologico millennium bug, ma il leap second i suoi bei danni li ha provocati eccome: numerosi gli episodi di crash e disservizi in Rete, mentre la probabile matrice di altri incidenti occorsi nello stesso periodo temporale attende conferme.

Introdotto qualche decade fa (1972), il leap second serve a risincronizzare gli orologi terrestri con il rallentamento della rotazione terrestre, un fenomeno progressivo e variabile che costringe i "misuratori di tempo" ad accumulare un ritardo sensibile rispetto al naturale avvicendarsi di giorno e notte.

Di "leap second" (l'aggiunta manuale di un secondo a un giorno scelto dell'anno) ne sono già trascorsi 25, ma diversamente da quello del 2005 l'ultimo arrotondamento temporale ha lasciato una scia fatta di crash, disservizi, siti irraggiungibili o codice impazzito come maionese.
Come in occasione del succitato millennium bug - ancorché su scala molto meno estesa - i danni sono stati tangibili anche se non proprio apocalittici negli effetti: il sito di social news Reddit ha manifestato problemi con Java/Cassandra, il network di blog professionali Gawker è finito completamente "down", Mozilla ha avuto difficoltà con Java, svariati server basati su Linux sono finiti in crash e la compagnia aerea australiana Qantas è stata costretta a posticipare 50 voli.

Matrice probabilmente comune ancorché non confermata hanno avuto i problemi sperimentati dal social network professionale LinkedIn, dalla image board 4chan, da StumbeUpon, Yelp e molti altri servizi e siti web. I problemi di accessibilità a The Pirate Bay e Foursquare sarebbero invece indipendenti dal leap second, e non sono stati chiariti eventuali incroci con i disservizi causati dal maltempo in Virginia che hanno complicato la vita ai clienti dei servizi cloud di Amazon.

Alfonso Maruccia
Notizie collegate
22 Commenti alla Notizia Il secondo che crasha il Web
Ordina
  • E' vero che la Terra rallenta la sua rotazione (per via delle forze di marea provocate dalla Luna), però non tanto da dover aggiungere un secondo ogni tot anni!
    La verità è che c'è comunque una minima discrepanza tra il periodo di rotazione della Terra e il tempo misurato dagli orologi atomici (che sono enormemente più precisi!), e periodicamente tocca risincronizzarli infilandoci il secondo intercalare.
    Funz
    12980
  • tra i tanti casi in cui può essere importante la durata di un secondo è quella in cui si traccia il costo temporale di un'operazione (ad esempio di una transazione), o comunque a livello di sistema per tracciare il consumo di CPU dei processi.
    Di norma, qualsiasi operazione termina dopo essere iniziata (ovvero: T-end > T-start).
    Ma nel caso in cui venga retrocesso l'orologio di sistema, diviene possibile che una misura di un tempo inferiore al secondo possa terminare ad un'ora uguale o antecedente a quella d'inizio (T-end <= T-start).
    Se calcolo la differenza tra fine ed inizio, con il valore T-end antecedente a quello di T-start, il risultato è impredicibile, in quanto dipende da come è fatto il codice che calcola questa differenza, e da come gestisca le condizioni di presunto errore.
    Se si ragiona con numeri interi, a livello binario un'operazione del genere può portare a valori negativi (cosa logicamente impossibile), e se si ragiona con numeri unsigned, il risultato può avere dimensioni spaventose (su 32 bit, l'errore può essere di 2^31, e su 64 bit di 2^63, che equivalgono approssimativamente a 68 anni e a 300 miliardi di anni - sempre che non abbia sbagliato i conti).

    Certamente si può dire che di norma chi sviluppa codice può permettersi di dare per scontato che il tempo sia una funzione monotona strettamente crescente.
    Evidentemente quest'assunzione è diventata un po' stretta ...
  • Visto che quelli ad avere più problemi sono stati i sistemi che usano Java, a questo punto mi viene da pensare: che cosa hanno combinato negli ultimi 7 anni? C'è un aggiornamento al giorno praticamente, che fanno, stanno riscrivendo tutte le librerie?
    Wolf01
    3342
  • - Scritto da: Wolf01
    > Visto che quelli ad avere più problemi sono stati
    > i sistemi che usano Java, a questo punto mi viene
    > da pensare: che cosa hanno combinato negli ultimi
    > 7 anni? C'è un aggiornamento al giorno
    > praticamente, che fanno, stanno riscrivendo tutte
    > le librerie?

    Si, cambiano regolarmente i nomi delle variabili Rotola dal ridere
    krane
    22544
  • - Scritto da: Wolf01
    > Visto che quelli ad avere più problemi sono stati
    > i sistemi che usano Java, a questo punto mi viene
    > da pensare: che cosa hanno combinato negli ultimi
    > 7 anni? C'è un aggiornamento al giorno
    > praticamente, che fanno, stanno riscrivendo tutte
    > le
    > librerie?

    guarda che non è un problema di Java, è un bug di Cassandra.
    non+autenticato
  • Qualcuno dovrebbe spiegarmi come (e sopratutto perchè?) un sistema (applicativo ovviamente) dovrebbe/potrebbe dovere tenere conto di "timestamp" con precisione/tolleranza inferiore al millisecondo sul piano "globale".
    Mi spiego meglio :
    1)
    Sto su una rete (ipotesi) in cui il tempo di propagazione è inferiore al millisecondo (ovvero praticamente una rete locale perchè anche se non è "locale" è a tutti gli effetti pratici come se lo fosse date le prestazioni) in questo caso non si capisce (posto che esista realmente.. cosa tutta da dimostrare... la necessità di essere sincronizzati sotto il millisecondo) ... in questo caso nessuna difficoltà a usare un unico server a strato 0 (automaticamente il resto è sincronizzato) cui riferirsi.

    2)
    Sto su una rete globale con tempi di propagazioni superiori al millisecondo in questo caso la soluzione è banale!

    Si licenziano tutti (e sottolineo tutti) i responsabili delle architetture applicative perchè solo un deficiente può immaginare un sistema applicativo (e risottolineo applicativo) che necessita di una risoluzione più precisa di un millisecondo su una infrastruttura (rete e servizi associati come ntp) che non può fisicamente supportare questo "requisito".

    In ambedue i casi il problema non sussiste a meno che non si voglia crearlo!
    Morale....
    Maruzzelllaaaaa maruzzzeeèèè!
    Occhiolino
    non+autenticato
  • Mi pare che l'articolo parli di un "secondo", non di un millisecondo..
    non+autenticato
  • - Scritto da: Pinco Pallo
    > Mi pare che l'articolo parli di un "secondo", non
    > di un
    > millisecondo..

    forse si riferiva a quello che sosteneva che i server di Google hanno causato problemi per via del fatto che hanno distribuito l'aggiornamento nel corso di una intera giornata in frazioni di un millisecondo.
    non+autenticato
  • - Scritto da: tucumcari
    > Qualcuno dovrebbe spiegarmi come (e sopratutto
    > perchè?) un sistema (applicativo ovviamente)
    > dovrebbe/potrebbe dovere tenere conto di
    > "timestamp" con precisione/tolleranza inferiore
    > al millisecondo sul piano "globale".

    Il problema non è tanto nel millisecondo, quanto nella non monotonicita' del tempo in caso di aggiunta di un secondo. Per aggiungere un secondo la convenzione è che dopo le ore 23:59:59 invece di avere le 00:00:00, abbiamo le 23:59:60 ed il secondo successivo le 00:00:00. Ma le 23:59:60 non sono rappresentabili nei sistemi informatici, per cui occorre di fatto rimettere indietro di un secondo l'orologio interno.

    Il problema è facile da spiegare: è lo stesso che avresti nel caso in cui metti indietro l'ora del server "a caldo", mentre il sistema sta processando transazioni a pieno regime.
    non+autenticato
  • Su come vengono scritti i programmi. Se un secondo aggiunto sporadicamente ad un timestamp che ne dovrebbe contare qualche miliardo è in grado di mandare in crash interi network significa solo che che ha realizzato quei software farebbe meglio a dedicarsi all'ippica sottomarina.
    Veramente, ci ho pensato e ripensato, ma cosa potrebbe mai fare un programma per crashare in un caso come questo ? Anche battendo codice a caso non sarebbe possibile fare una cosa del genere.
    Se qualcuno vuole delucidarmi sulle fantastiche tecniche di programmazione che portano a questo genere di crash è il benvenuto.
    non+autenticato
  • è quello che stavo pensando anch'io mentre leggevo questo fantastico articolo
    non+autenticato
  • - Scritto da: ospite
    > Su come vengono scritti i programmi. Se un
    > secondo aggiunto sporadicamente ad un timestamp
    > che ne dovrebbe contare qualche miliardo è in
    > grado di mandare in crash interi network
    > significa solo che che ha realizzato quei
    > software farebbe meglio a dedicarsi all'ippica
    > sottomarina.
    > Veramente, ci ho pensato e ripensato, ma cosa
    > potrebbe mai fare un programma per crashare in un
    > caso come questo ? Anche battendo codice a caso
    > non sarebbe possibile fare una cosa del
    > genere.
    > Se qualcuno vuole delucidarmi sulle fantastiche
    > tecniche di programmazione che portano a questo
    > genere di crash è il
    > benvenuto.

    ma che ne sapete? qui si sta parlando di datacenter composti da centinaia o migliaia di nodi, di database distribuiti che processano milioni di transazioni al secondo e voi tutti a fare gli ingengeri?
    non+autenticato
  • - Scritto da: il signor rossi
    > - Scritto da: ospite
    > > Su come vengono scritti i programmi. Se un
    > > secondo aggiunto sporadicamente ad un timestamp
    > > che ne dovrebbe contare qualche miliardo è in
    > > grado di mandare in crash interi network
    > > significa solo che che ha realizzato quei
    > > software farebbe meglio a dedicarsi all'ippica
    > > sottomarina.
    > > Veramente, ci ho pensato e ripensato, ma cosa
    > > potrebbe mai fare un programma per crashare in
    > un
    > > caso come questo ? Anche battendo codice a caso
    > > non sarebbe possibile fare una cosa del
    > > genere.
    > > Se qualcuno vuole delucidarmi sulle fantastiche
    > > tecniche di programmazione che portano a questo
    > > genere di crash è il
    > > benvenuto.
    >
    > ma che ne sapete? qui si sta parlando di
    > datacenter composti da centinaia o migliaia di
    > nodi, di database distribuiti che processano
    > milioni di transazioni al secondo e voi tutti a
    > fare gli
    > ingengeri?

    La domanda era invece pertinente.
    Un sistema ben scritto, di fronte ad una sincronia alterata, al massimo produce un errore, alla peggio si interrompe, ma non deve mandare in crash il sistema.
  • - Scritto da: panda rossa

    > La domanda era invece pertinente.
    > Un sistema ben scritto, di fronte ad una
    > sincronia alterata, al massimo produce un errore,
    > alla peggio si interrompe, ma non deve mandare in
    > crash il
    > sistema.

    è ovvio che si tratta di un bug, ma l'OP che parla in maniera così saccente ha idea di cosa sia Cassandra e della complessità del progetto nonché delle situazioni nelle quali viene usato? Ha mai preso parte allo sviluppo di progetti di complessità paragonabile? Ha un background tale da poter supportare la sua affermazione che gli sviluppatori di Cassandra sono degli incompetenti?
    non+autenticato
  • - Scritto da: il signor rossi
    > - Scritto da: panda rossa
    >
    > > La domanda era invece pertinente.
    > > Un sistema ben scritto, di fronte ad una
    > > sincronia alterata, al massimo produce un
    > errore,
    > > alla peggio si interrompe, ma non deve mandare
    > in
    > > crash il
    > > sistema.
    >
    > è ovvio che si tratta di un bug, ma l'OP che
    > parla in maniera così saccente ha idea di cosa
    > sia Cassandra e della complessità del progetto
    > nonché delle situazioni nelle quali viene usato?
    > Ha mai preso parte allo sviluppo di progetti di
    > complessità paragonabile? Ha un background tale
    > da poter supportare la sua affermazione che gli
    > sviluppatori di Cassandra sono degli
    > incompetenti?

    L'OP ha chiesto che cosa fara' mai questo Cassandra per causare tutto questo macello per colpa di un secondo in piu'.
    Tu la sai la risposta?
CONTINUA A LEGGERE I COMMENTI
Successiva
(pagina 1/2 - 9 discussioni)