Bug in produzione

Giuseppe Toto
Forgiatore di materia virtuale
2 min readNov 13, 2016

--

Oggi vi racconto un bug che definirei al quanto “filosofico”.

Se ad occhio vi dovessi chiedere che tipo di dato assegnereste a questi valori cosa mi rispondereste?

5818d70dd0bf050001777772
57d053eb6bc24300012b1cc0
582646933170e00001768588

Beh dai la risposta è facile no? Delle semplici stringhe alfanumeriche o banalmente delle fottute stringhe. No? NOOOO ? Beh dannazione non è esattamente così !!! Sui primi due siamo d’accordo…ma sull’ultimo possiamo un po’ filosofeggiare.

Guardiamolo con più attenzione:

582646933170e00001768588

in questo caso abbiamo un meraviglio id generato casualmente composto quasi esclusivamente da numeri e da un solo semplice singolo fottuto simbolo alfabetico: e

Il simbolo e in matematica esprime due concetti: funzione esponenziale e numero di eulero.

In php (ma immagino anche in altri linguaggi e anche sulle calcolatrici scientifiche), viene usato per raggruppare una sequenza di zeri

$val = 1e6; // 1000000;

Ora fatte tutte queste belle premesse e ritornando alla domanda di prima se dovessi definire una funzione che esegue un cast dati questi 3 valori che valore mi dovrei aspettare?

5818d70dd0bf050001777772 // (string)
57d053eb6bc24300012b1cc0 // (string)
582646933170e00001768588 // (INF)

In php i numeri infiniti sono espressi con INF.

Questo scenario inaspettato ha comportato una serie di problemi che hanno causato un black out del sito e-commerce. Evviva…(ecco a cosa serve scrivere dei buoni test…già…me lo devo ricordare.)

--

--