Storie dalla Sala Macchine


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


Check Your Sh1t!

E sono di nuovo da $brancodipaguri! Aaahhhh. Quanto tempo! Quasi un mese. Ed io che cominciavo a sperare che... vabbe'.

Intanto che sono qui che trasferisco un database da uno degli ennemila server di "test" (che sono tutti di test altrimenti bisognerebbe pagare le licenze) al "vero" database server, quello che fu comperato prima che io me ne andassi ed e' rimasto a prendere polvere nel rack fino a ieri l'altro quando l'ho acceso per la prima volta, arriva uno dei CL.

CL - Ehi, tu sei D?
IO - Ti devo dei soldi? Ho giurato di sposarti in un momento che ero ubriaco? Ho giurato di sposare un tuo parente in un momento in cui ero ubriaco?
CL - (confuso) Huh?
IO - (ok, ci ha il processore a 1.6 Mhz) Lascia perdere... si sono io, che vuoi?
CL - Mi ha detto UL che tu potresti aiutarmi con un problema che ho con una applicazione.

UL e' sempre il genio, amante dei piani superdettagliati che si sta prodigando come irresponsabile IT.

IO - Ok, che problema hai?
CL - Allora, la mia applicazione strumpa e ridumpa, frulla e risfrulla ma la connessione al database e' mortalmente lenta. Volevo vedere come potevamo ottimizzare il database.
IO - Sei sicuro che il problema sia nel database?
CL - E che altro potrebbe essere?

Mi trattengo dal rispondergli "la tua testa". No, non lo so come o perche'. Comunque, usciamo dalla Sala Macchine ed andiamo a vedere questo problema.

L'applicazione (ovviamente) e' solo sul suo lapdog, e non e' installata su uno dei server di "test". Nota per me: chiedere ad UL di compilare una lista completa ed esaustiva di tutte le applicazioni che girano sui server di test e quali server, cosi' magari riusciamo a spegnere qualcuno di questo ginepraio di pc-che-fingono-di-essere-server.

CL - Allora, io faccio cosi' cosa' cosu'... ecco, adesso fa la richiesta al database e si blocca.

Ed in effetti, si blocca.

IO - Ok, quale e' il database che stai usando?
CL - Ruzgublfulful.
IO - (guardandolo fisso) E dove accidenti sta?
CL - Qui (indicando il laptop).

Ovviamente. E che ti pareva?

IO - Bene. Adesso fammi un dump del db e lo spostiamo sul server, cosi' vediamo subito se e' un problema di risorse della macchina oppure no.
CL - (confuso) Un dump?
IO - Si, un dump. Del database.
CL - E come si fa?

Rapida introduzione di CL alle magie di mysqldump, chiappa il dump (2 Mb), crea un db sul server, importa il dump, imposta i permessi.

IO - Adesso imposta la tua applicazione per usare il db sul server, questi sono i dati.
CL - Huhhh... Quello non e' tanto facile...
IO - Perche'?
CL - Perche'....
IO - Hai le stringhe di connessione hard-wired nel codice.

Ovviamente, e che mi aspettavo?

IO - E come pensi di spostare l'applicazione in produzione (se mai ci andra') o in testing (se mai ci andra')?
CL - Mah... io pensavo che il db rimanesse sulla stessa macchina quindi...
IO - Pensavi male. Adesso cambiati il codice in modo da usare un'altro server. E se vuoi un mio consiglio (che te lo do' lo stesso anche se non lo vuoi), rimuovi tutti i parametri che sono hard-wired e falli leggere da un file di configurazione.

CL inizia il difficoltoso lavoro di modificare il suo codice, reso ancora piu' difficile dal fatto che, apparentemente, e' incapace di usare un editor di testo ed il concetto di "search & replace" gli e' ignoto. Dopo un po' lo mollo li' e me ne ritorno al tavolo di cui mi sono impossessato come "postazione di lavoro". Un paio di ore dopo CL e' di ritorno.

CL - Ok, dovrei essere a posto...
IO - "Dovresti" essere a posto? Non hai provato?
CL - E come faccio a provare?
IO - Che ne dici di spegnere il tuo db server e vedere se ti becchi un errore?
CL - Ah, be... si ma non credo che funzioni cosi'...
IO - Perche'...?

Perche' (sciocco io a non pensarci subito), non appena avvia quella chiavica di una applicazione si becca una spataffiata di errori. Ed il funzionamento "normale" della cosa e' un errore ogni 30 secondi. Come potrebbe percio' distinguere un errore da un "errore" ?

Comunque, lui ricomincia la giga ed io tengo un occhio sul db.

CL - Ecco, adesso si e' ribloccato? Vedi che e' il database?
IO - (indicando la console) Database un corno. Non sta facendo niente.
CL - Come non sta facendo niente? Ma guarda che e' bloccato... il database...
IO - Il database ti ha dato le informazioni in clicckety-click unopuntodue secondi.
CL - Ma la query...
IO - La query e' fatta, finita, hasta lasagna. I dati sono da qualche parte nella tua applicazione, cosa ne stai facendo lo sai solo tu. Ma il database non e' il problema.
CL - Ma... i dati... la query...

Io a quel punto mi impossesso del lapdog e faccio un rapido controllo: il processore e' a palla al 100%. Un thread dump dell'applicazione mi dice che negli ultimi 2.5 minuti, il tempo usato dal Garbage Collector e' stato di 2 minuti e 28 secondi. Ergo, gli unici due secondo che l'applicazione ha 'girato' e' stato durante la query al database.

IO - Eccoti il tuo problema, la tua applicazione e' scritta con i piedi.

In effetti potrebbe essere scritta anche con altre parti del corpo, ma sicuramente nessuna che ha minimamente a che fare con il cervello.

CL - Ma... la query... il database...

E cosi' il muro si e' arricchito di un altro dei miei "cartelli":

Check your shit
Before complaining with me
be sure
that your stuff works as intended.

Davide
14/12/2009 08:00

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.

12 messaggi this document does not accept new posts

Herr Franz

aaaah..... Di Herr Franz postato il 14/12/2009 08:48

l'aria di casa...quel profumo di topo morto che si avverte solo nelle ditte in putrefazione...scommetto che ti è mancata! -- Herr Franz

Tommaso

quel cartello Di Tommaso postato il 14/12/2009 09:10

vorrei tanto riciclarlo pure io, ma pare sia contrario all'integrity aziendale! :\(
Ma che è colpa mia se sono stupidi?
Non lo so, comunque sia non gli puoi dire che un paramecio e' piu' intelligente!!! -- Il saggio coltiva Linux...
Tanto Windows si pianta da solo.

MaxFrames

Parole sante Di MaxFrames postato il 14/12/2009 09:17

Mi sa che ti rubo l'idea. -- I'll have to script my way outta here!

Anonymous coward

brain dump Di Anonymous coward postato il 14/12/2009 09:30

un dump del suo cervello porterebbe ad un risultato nullo -- Anonymous coward

BlackKatMike

@ Anonymous coward Di BlackKatMike postato il 14/12/2009 10:06

> un dump del suo cervello porterebbe ad un risultato nullo

... O ad un errore durante il dump >:-) ? -- BlackKatMike

ringo

@ BlackKatMike Di ringo postato il 14/12/2009 10:19

> > un dump del suo cervello porterebbe ad un risultato nullo
>
> ... O ad un errore durante il dump >:-) ?
>
Il problema sarebbe quello di riuscire ad individuare l'errore "Neurone non trovato" durante il dump nel log che visualizza la marea di errori del normale funzionamento del suo cervello. -- ringo

Kesty

Dovrebbe funzionare Di Kesty postato il 14/12/2009 10:25

Da quand'è che il condizionale è una forma sbagliata in informatica ?

Forse sono io che sono particolarmente incapace, ma non sono mai cosė sicuro da dire: "Adesso funziona!" neanche dopo averla testata 10mila volte.

In informatica le cose, in teoria, dovrebbero funzionare. In pratica, invece, se sei fortunato. -- Kesty

Cymon

@ Kesty Di Cymon postato il 16/12/2009 19:31

> Da quand'è che il condizionale è una forma sbagliata in informatica ?
>
> Forse sono io che sono particolarmente incapace, ma non sono mai cosė sicuro da dire: "Adesso funziona!" neanche dopo averla testata 10mila volte.

Concordo. Ma ancor più non direi mai "adesso funziona" se il mio codice spara un errore ogni trenta secondi come uso normale. -- Cymon

noob

Ma... Di noob postato il 14/12/2009 11:16

Una cosa che mi sto chiedendo da un po': come diavolo fa $brancodipaguri ad essere ancora in giro vista la "qualita'" media dei suoi prodotti? Hanno trovato dei polli ancora più fessi di loro da spennare oppure si sono dati agli schemi Ponzi? -- noob

Davide Bianchi

@ noob Di Davide Bianchi postato il 14/12/2009 11:19

> Una cosa che mi sto chiedendo da un po': come diavolo fa $brancodipaguri ad essere ancora in giro

Le hai lette le FAQ si'?
-- Davide Bianchi

Thesadsysadmin

cartellonistica Di Thesadsysadmin postato il 14/12/2009 12:03

"in questo ufficio forniamo supporto informatico.
per supporto di tipo encefalico rivolgersi altrove (provate con Dio)"

questo cartello campeggia sul mio muro :-\)

è sempre un piacere leggere questo sito!
:-) -- Thesadsysadmin

Piernicola Comuniello

Commento Di Piernicola Comuniello postato il 20/12/2009 11:28

Non so se mi vien piu' da ridere o da piangere :-/ -- Piernicola Comuniello

12 messaggi this document does not accept new posts

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