Notifica doppia TerremotiBot 14/03/2017

Notifica doppia TerremotiBot 14/03/2017

Matteo Contrini

Il 14 marzo 2017 alle 19:48:21 il bot Telegram TerremotiBot ha inviato notifiche a 795 utenti per un terremoto avvenuto 24 ore prima, il 13 marzo 2017 alle 19:48:20.

Si tratta dell'evento INGV con ID 14149931, che era già stato notificato il giorno precedente (alle 20:00:16 del 13 marzo).

Perché è successo?

Alle 19:48:20 di martedì (i secondi contano), il backend del bot fa una richiesta al webservice dell'INGV richiedendo tutti i terremoti delle ultime 24 ore, perciò dalle 19:48:20 (13 marzo) in poi.

Alle 19:48:20 del 13 marzo era avvenuto l'evento 14149931, ma il web service dell'INGV non lo ritorna nella risposta, forse perché fa una query al database con l'operatore di confronto ">" e non ">=".

Ricevuta la risposta dal server INGV (senza l'evento 14149931), il backend del bot interroga il database per prelevare gli ID di tutti i terremoti avvenuti nelle ultime 24 ore. Cioè la lista di ID degli eventi avvenuti dalle 19:48:20 (13 marzo) in poi. Tra questi c'è anche l'evento 14149931, avvenuto esattamente alle 19:48:20 del 13 marzo (il limite "sinistro" della query maggiore uguale).

A questo punto il backend confronta la lista di ID ritornata dall'INGV (che non contiene 14149931) e la lista di ID estratta dal database (che contiene 14149931). Viene così erroneamente rilevato che il terremoto di esattamente 24 ore precedenti è un nuovo terremoto che non è mai stato notificato. Partono così le 795 notifiche e la pubblicazione su Twitter e Facebook dell'evento.

È difficile che il problema si ripeta di nuovo (ci vuole sfortuna, tanta), ma è stato comunque creato un issue nella repository GitHub del bot.


Report Page