Storie dalla Sala Macchine


Home Page | Commenti | Articoli | Faq | Documenti | Ricerca | Archivio | Storie dalla Sala Macchine | Contribuire | Imposta lingua:en it | Login/Register


DeBug... DeBug... DeBUM!

Mai avrei pensato di ritrovarmi in questa situazione... non e' da ieri che programmo e di algoritmi incasinati ne ho visti parecchi ma... e' il terzo giorno consecutivo che sto cercando di inchiodare un fetentissimo bug nel mio programma di analisi e statistiche news senza riuscire ad individuare dove accidenti si annida il mostriciattolo.

All'inizio pensavo che fosse un classico PBKC (Problem Between Keyboard and Chair = utonto), ma dopo un buon tre ore perse ad osservare come la CL che usa quest'arnese opera, non sono riuscito a scovare niente che lei fa che possa produrre un qualche tipo di malfunzionamento.

La CL in questione e' stata momentaneamente promossa dal suo "rango" di CL al rango di Utente, e, finche' non fa qualche cosa che la faccia precipitare di nuovo, verra' qui' riferita come SH, se vi interessa e' la bionda a sinistra.

Non staro' a descrivere l'orrore provato nel tentare di rileggere codice da me scritto e ritrovarmi a pensare "ma che XXXXX stavo pensando quando ho scritto sta cosa????" o la tentazione di fare un rm -f * e ricominciare da capo. Il problema: l'accrocchio prende un file .xml (e' un feed RSS), lo processa inserendo i dati di base in un database e producendo un file .txt contenente gli articoli 'riarrangiati' con tutti i tag rimossi e gli eventuali link in coda all'articolo stesso.

Oltre a tutto questo casino (come odio l'XML), il "coso" produce anche delle pagine .html basandosi su una serie di 'templates' che devono essere selezionati in funzione della "tipologia" di articolo. Dato che la tipologia e' abbastanza "casuale", c'e' una interfaccia utonto che permette a qualcuno (la nostra SH) di approvare o cambiare la definizione per ogni articolo ed eventualmente modificare le "regole" che il coso utilizza per definire le tipologie.

Non so bene perche', ma ogni tanto, pare che l'interfaccia vada in tilt e tutta la definizione delle regole va a ramengo... risultato: nessun template viene selzionato e la generazione delle pagine si inchioda miseramente.

Ed e' il terzo giorno consecutivo che cerco di capire perche' questo coso non funziona come dovrebbe senza riuscirci. Sto' cominciando a pensare a cose come questa, quando un idea mi colpisce come un fulmine: forse il problema e' che due persone definiscono due regole diverse per la stessa tipologia e, dato che l'accrocchio e' una web-application, la seconda definizione sovrascrive la prima. Il che non spiega perche' anche tutte le altre definizioni vengono 'spianate' dal db ma e' un inizio.

Dopo una mezza giornata di prove e riprove sul db di test non riesco a trovare una singola prova a carico della mia interfaccia. Apparentemente tutto funziona come un orologio svizzero costruito in giappone. Ed ecco che SH mi informa che "e' successo di nuovo"... SGRUNT! Meno male che le ho spiegato come salvare tutte le regole su file sul suo PC e poi re-importarle da capo. Cosi' non devo fare un backup del database ogni dieci minuti.

Sto' provando a fare degli aggiornamenti incrociati sul db di test usando due diverse istanze di mozilla, quando SH arriva a romp... hemmm... a vedere come vanno le cose.

SH - Hai trovato qualche cosa?
IO - No.

Continuo a ravanare. Niente. Apparentemente tutto funziona come dovrebbe funzionare. Il bello e' che sono due giorni che sto provando a riprodurre la cosa sul mio db di test, ma non c'e' verso, pare che solo sul db di produzione si verifichi il bug.

IO - Ok, vediamo un po'... voglio provare ad installare il db sul tuo PC, cosi' vediamo se e' un problema dovuto alla versione che e' installata sul server.
SH - Ma gli altri poi come fanno ad usarlo?
IO - Gli altri chi? Ci sei solo tu al momento!

Cosi' installo il db sul suo PC e le cose paiono funzionare un po' meglio: in tutta la giornata non c'e' un solo problema. Che sia veramente un problema nella versione installata sul server?

Sto' facendo qualche controllo sulle versioni di db e sui bug noti quando il Danese Ubriaco mi approccia...

DU - Tu stai combinando qualche cosa con $accrocchionews vero?
IO - Si. Perche'?
DU - Perche' la mia procedura di indicizzazione mi riporta degli strani errori sulle tue pagine.
IO - ...quale "procedura di indicizzazione"??
DU - Stavo mettendo a punto questa nuova procedura di indicizzazione delle pagine, sostanzialmente e' una specie di motore di ricerca che richiama tutti i link di una pagina per indicizzare, e mi ritorna degli errori sulle tue pagine.
IO - ..."richiama tutti i link"... non e' che per caso segue anche i link "dinamici", cioe' che richiamano una pagina con dei parametri?
DU - Certo. Richiama tutti i link...
IO - Hemmm... e supponiamo che uno di questi link sia il richiamo ad una procedura che aggiunge o rimuove i dati da un database...
DU - Certo, viene... huuuuu....
IO - E da quando stai testando questa procedura?
DU - ...da lunedi'...
IO - E da lunedi' magari ci sono una ventina di messaggi tipo "database sputtanato, restore grazie" nella coda di helpdesk?

...e' proprio vero: c'e' del marcio in Danimarca...

Davide
17/01/2009 14:31

Precedente Successivo

I commenti sono aggiunti quando e soprattutto se ho il tempo di guardarli e dopo aver eliminato le cagate, spam, tentativi di phishing et similia. Quindi non trattenete il respiro.

3 messaggi this document does not accept new posts

dpantaleo

dpantaleo Di dpantaleo postato il 06/10/2008 11:03

carine tutte e due! il terzo sullo sfondo è un cl?


ovviamente


Fabio

Fabio Di Fabio postato il 22/11/2008 07:59

Ciao Davide. Scusa se ti inquino i commenti, ma il link a jumbojoke che e' contenuto in questa storia e' deceduto da un bel po'.
Ciao e buona serata.


Si, se adesso mi ricordassi che roba era...


Andrea Del Priore

Andrea Del Priore Di Andrea Del Priore postato il 08/01/2009 08:24

Il link era quello, se non ricordo male, intitolato "never buy version 1.0" riferito al famoso(famigerato) test sul siluro che a causa di un valore negativo nel calcolo della profondità riemerse dopo il lancio eccetera.

(dopo aver scritto ciò ho trovato che archive.org ha una copia della pagina, la trovi su http://web.archive.org/web/20050906172622/http://www.jumbojoke.com/000165.html )

Precedente Successivo


Il presente sito e' frutto del sudore della mia fronte (e delle mie dita), se siete interessati a ripubblicare uno degli articoli, documenti o qualunque altra cosa presente in questo sito per cortesia datemene comunicazione (o all'autore dell'articolo se non sono io), cosi' il giorno che faccio delle aggiunte potro' avvisarvi e magari mandarvi il testo aggiornato.


Questo sito era composto con VIM, ora e' composto con VIM ed il famosissimo CMS FdT.

Questo sito non e' ottimizzato per la visione con nessun browser particolare, ne' richiede l'uso di font particolari o risoluzioni speciali. Siete liberi di vederlo come vi pare e piace, o come disse qualcuno: "Finalmente uno dei POCHI siti che ancora funzionano con IE5 dentro Windows 3.1".

Web Interoperability Pleadge Support This Project
Powered By Gojira