Avevo scoperto un bug di un sito e volevo chiedervi il perché

di il
1 risposte

Avevo scoperto un bug di un sito e volevo chiedervi il perché

Ciao a tutti
Tempo fa avevo scoperto un bug in un sito, casualmente. E mi piacerebbero però chiedervi secondo voi da cosa era dovuto questo bug, e posto qui, su database, la domanda, in quanto attraverso il buco della serratura dal quale io guardo credo fosse un problema di database. Ma chiedo a chi ha una esperienza maggiore e a chi ha una visione più completa.

Per farla breve c'era un sito dove ogni volta che premevi un pulsante, si inviava una richiesta per un libro, come se fosse un acquisto, solo che invece al posto dei soldi ti scalavano i punti. Accumulati in quanto a mia volta io inviavo i libri che mi richiedevano: +1 punto per ogni libro che mi chiedevano e -1 punto per ogni libro che chiedevo io.

Un giorno dovevo inviare la richiesta per 2 libri. Causalmente, con la fretta, ho inviato le due richieste in un lasso di tempo brevissimo tra l'uno e l'altro.
Mi ritrovai 2 libri in attesa di ricezione MA solo 1 punto tolto...
Il tentativo allora era quello di provare più richieste possibili in meno tempo possibile...

Allora preparai una quindicina di browser Chrome aperti (non schede, ma proprio browser), tutte puntavano a un libro diverso.
Modificai le dimensioni di ogni browser della dimensione giusta del pulsante, in modo tale che inquadrassero solamente il pulsante, trovandomi quindi con 15 pulsanti uno vicino all'altro. Anche quasi totalmente sovrapposti in modo da abbreviare ancora di più il lasso di tempo tra un click e l'altro.

Cliccai su tutti e 15 i pulsanti nell'arco di pochissimi secondi
Mi ritrovai con 15 libri in lista di attesa di essere ricevuti e mi tolsero solo 5 o 6 punti, invece che 15.
Siccome si poteva vedere anche quanti punti aveva gli altri utenti, mi rendevo conto però che gli altri ricevevano comunque 15 punti in totale... così come tutti avevano nella loro lista di libri da inviare tutti i libri che avevo richiesto.
Insomma dei 15 libri non si perdeva traccia, 15 ne chiedevo, 15 mi arrivano, 15 erano i punti che gli altri ottenevano in totale. L'unica differenza è che ne toglievano meno a me.

È come se il programma che c'era dietro non facesse in tempo a registrare -1 punto prima che io inviassi un'altra richiesta...
Come se a livello procedurale segnasse prima i libri richiesti sugli account delle 2 persone interessate, mettesse un +1, ma facendo un'altra richiesta si bloccasse e non avesse il tempo di aggiornare il -1 a me... salvo giusto 5 o 6 volte su 15 click...

Mi piacerebbe molto capire perché, secondo voi, avveniva questo.
Mi sono sempre chiesto infatti, se uno fa partire una pagina e la blocca, mi blocca anche lo script a metà non facendo terminare allo script tutte le operazioni?
Come si deve ovviare a questa cosa?
Come funziona il meccanico di modifica di una riga del database se allo stesso tempo 2 script vanno a modificarla?

Grazie per l'attenzione

1 Risposte

  • Re: Avevo scoperto un bug di un sito e volevo chiedervi il perché

    melixo ha scritto:


    Per farla breve [...]
    Ho capito poco o nulla.

    melixo ha scritto:


    Mi piacerebbe molto capire perché, secondo voi, avveniva questo.
    Bug del sito? Chi può dire a cosa può essere dovuto...

    melixo ha scritto:


    Mi sono sempre chiesto infatti, se uno fa partire una pagina e la blocca, mi blocca anche lo script a metà non facendo terminare allo script tutte le operazioni?
    Possibile, ma questo non deve compromettere le funzionalità del sito.

    melixo ha scritto:


    Come si deve ovviare a questa cosa?
    Va analizzato nel contesto del caso specifico.

    melixo ha scritto:


    Come funziona il meccanico di modifica di una riga del database se allo stesso tempo 2 script vanno a modificarla?
    Dipende dal database, dalla piattaforma del server, dal framework utilizzato, dall'uso o meno di transazioni, da come il codice è stato scritto, dalla presenza (o meno) di bug, dalla posizione della luna.
Devi accedere o registrarti per scrivere nel forum
1 risposte