Tales from the Machine Room


Home Page | Comments | Articles | Faq | Documents | Search | Archive | Tales from the Machine Room | Contribute | 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

Previous Next

Comments are added when and more important if I have the time to review them and after removing Spam, Crap, Phishing and the like. So don't hold your breath. And if your comment doesn't appear, is probably becuase it wasn't worth it.

3 messages this document does not accept new posts
dpantaleodpantaleo By dpantaleo - posted 06/10/2008 11:03
carine tutte e due! il terzo sullo sfondo Ŕ un cl?


ovviamente


FabioFabio By Fabio - posted 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 PrioreAndrea Del Priore By Andrea Del Priore - posted 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 )

Previous Next


This site is made by me with blood, sweat and gunpowder, if you want to republish or redistribute any part of it, please drop me (or the author of the article if is not me) a mail.


This site was composed with VIM, now is composed with VIM and the (in)famous CMS FdT.

This site isn't optimized for vision with any specific browser, nor it requires special fonts or resolution.
You're free to see it as you wish.

Web Interoperability Pleadge Support This Project
Powered By Gojira