Salta al contenuto

Piero Bosio Social Web Site Personale Logo Federation

Social Forum federato con il resto del mondo. Non contano le istanze, contano le persone

Io credo che l'integer overflow non gestito sia uno dei bug più comuni del mondo informatico

Senza categoria
2 1 0
  • Io credo che l'integer overflow non gestito sia uno dei bug più comuni del mondo informatico.

    Ieri mezza fabbrica si è fermata per quasi un giorno intero a causa di questo. In realtà non avendo accesso al sorgente e non essendoci errori nei log ho fatto una diagnosi puramente comportamentale, ma Rockwell ha confermato la correttezza delle assunzioni dopo poche ore.

    In pratica a partire da una data specifica una certa funzione si è bloccata contemporaneamente su più server. Anche in ambiente di DEV. La funzione veniva chiamata, presentava una finestra che flashava e scompariva. Sul log indicava alla stessa data e ora l'attivazione e l'annullamento, che in realtà non c'era.

    Ma c'era.

    Questa finestra fa partire un timer che aspetta per la sua durata, configurabile, dopodiché annulla l'operazione. Non si può disattivare, e i nostri geniali ingegneri hanno comunemente deciso di popolare quel parametro con un valore di "99999h:59m:59s". Adesso vi lascio immaginare cosa sia successo a partire da ieri.

    Spoiler

    OK, se hai fatto il conto, manchiamo il bug 2038 per qualcosa come 8000 e rotte ore, meno di un anno, però non sappiamo come questo timeout venga impastato con altri parametri e in quale punto esatto l'intero si rompa. Potrebbe anche essere un integer underflow per quello che ne so, ma rimane il fatto che la finestra si chiude e l'operazione si annulla perché la condizione del timeout viene considerata soddisfatta.

    La morale è sempre quella

    Fai merenda con girella.

    Qualche zucchero in più non fa male se devi usare il cervello.

    Se poi sviluppi software, oltre a imparare da uno bravo, controlla i tuoi interi e se invece lo smanetti e basta non usare MAI valori limite, ma mettici la testa: non ha senso un timeout di 10 anni. Considerato tutto, in questo caso, 1 settimana sarebbe sufficientemente cautelativa.

    #software #development #bugs #integeroverflow

  • Io credo che l'integer overflow non gestito sia uno dei bug più comuni del mondo informatico.

    Ieri mezza fabbrica si è fermata per quasi un giorno intero a causa di questo. In realtà non avendo accesso al sorgente e non essendoci errori nei log ho fatto una diagnosi puramente comportamentale, ma Rockwell ha confermato la correttezza delle assunzioni dopo poche ore.

    In pratica a partire da una data specifica una certa funzione si è bloccata contemporaneamente su più server. Anche in ambiente di DEV. La funzione veniva chiamata, presentava una finestra che flashava e scompariva. Sul log indicava alla stessa data e ora l'attivazione e l'annullamento, che in realtà non c'era.

    Ma c'era.

    Questa finestra fa partire un timer che aspetta per la sua durata, configurabile, dopodiché annulla l'operazione. Non si può disattivare, e i nostri geniali ingegneri hanno comunemente deciso di popolare quel parametro con un valore di "99999h:59m:59s". Adesso vi lascio immaginare cosa sia successo a partire da ieri.

    Spoiler

    OK, se hai fatto il conto, manchiamo il bug 2038 per qualcosa come 8000 e rotte ore, meno di un anno, però non sappiamo come questo timeout venga impastato con altri parametri e in quale punto esatto l'intero si rompa. Potrebbe anche essere un integer underflow per quello che ne so, ma rimane il fatto che la finestra si chiude e l'operazione si annulla perché la condizione del timeout viene considerata soddisfatta.

    La morale è sempre quella

    Fai merenda con girella.

    Qualche zucchero in più non fa male se devi usare il cervello.

    Se poi sviluppi software, oltre a imparare da uno bravo, controlla i tuoi interi e se invece lo smanetti e basta non usare MAI valori limite, ma mettici la testa: non ha senso un timeout di 10 anni. Considerato tutto, in questo caso, 1 settimana sarebbe sufficientemente cautelativa.

    #software #development #bugs #integeroverflow

    @trwnh

    Sorry, it's in Italian....


Gli ultimi otto messaggi ricevuti dalla Federazione
Post suggeriti