Tales from the Machine Room |
Home Page | Comments | Articles | Faq | Documents | Search | Archive | Tales from the Machine Room | Contribute | Set language to:en it | Login/Register
Quello che succede di solito e' che tirate un bestemmione, vi date un paio di sberle (prima che siano gli altri a darvele) e poi, dopo aver esclamato ad alta voce per una dozzina di volte "lo sapevo che (non) dovevo fare cosi' e cosa'", cominciate a lavorare come dei dannati per rimettere a posto quello che e' appena andato a farsi benedire.
A volte siamo fortunati e riusciamo a farlo passare inosservato, ma a volte no.
Ed oggi e' stato proprio uno di quei bei momenti "ohca$$o". Ma cominciamo dall'inizio.
Ho gia' detto piu' volte di come siamo finalmente riusciti a mettere in produzione la famosa applicazione, stamani Bert mi gira un problema: un cliente a caso che non riesce a modificare l'impostazione "che fare con lo spam" del suo dominio. Io gli mando la solita mail "fai login, clicca sul dominio, clicca su 'settings', scegli nella combo-box ed eventualmente digita l'indirizzo verso il quale vuoi mandare la schifezza".
Dopo un po' mi arriva una risposta dal cliente in questione che dice: "Ok, non ero stato chiaro, il problema e' che mi becco un errore se ci provo". Io casco dalle nuvole, provo e scopro che il coso si lamenta che il "dominio non e' valido" (?). Dopo un po' di maledizioni mi rendo conto che il problema e' che il dominio del tipo e' "dumba-dumba.com", ed e' il '-' nel mezzo che non gli piace. Ebbene si'. La nostra interfaccia rifiuta i domini che contengono un '-'.
Riporto la cosa a K (che e' ancora qui per 2 giorni 2) e mando una bella mail di "congratulazioni: hai trovato un nuovo bug" al cliente in questione.
A questo punto arriva Bert.
Bert - Hai scoperto il problema con CL?
IO - Si', e' un bug nell'interfaccia. Ho avvisato K della cosa.
Bert - E che possiamo fare per CL?
IO - O aspettiamo che K corregga il codice o facciamo le modifiche manuali
nel database. E' una roba cosi' urgente?
Bert - Ma, se lo domandi a CL ti dice sicuramente di si.
Ok, acchiappa il database, vediamo un po'...
select count(*) from domains where name like '%dumba-dumba%';
3
IO - Sono solo 3 domini....
update domains set cosafaredellospam='forward', mandaloa='spam@dumba-dumba.com'
A questo punto e' arrivato Bart, con lo stesso problema ma per un altro cliente,
anche lui con un '-' nel nome del dominio. Ed io penso, ma cappero, tutti adesso
arrivano? E che accidenti di debug ha fatto K di questa applicazione nei
passati 6 mesi?Spiegato il problema a Bart ritorno a quello che stavo facendo.
Me pensa: hummm... allora dove ero arrivato? Ah si INVIO!
Ed il computer mi risponde garrulo "9850 records aggiornati". Ed io penso: come sarebbe a dire 9850 re... OH CA$$O!!!. Ebbene si'! Ho dimenticato il 'where'!
A questo punto acchiappo il backup e ne estraggo la tabella dei domini, ricarica la tabella dei domini e scopro che la maledetta e' in relazione con un altra tabella (gli indirizzi da accettare niente meno) e che facendo il load della tabella dei domini ho spianato quella degli indirizzi, acchiappa anche l'altra tabella dal backup.
Dopo una ventina di minuti passati a madonnare, ho ricaricato entrambe le tabelle e verificato che il tutto funzionasse correttamente. Naturalmente (come nella migliore tradizione) nel frattempo ci siamo beccati una mezza dozzine di telefonate di gente che non riceveva piu' posta perche' il dannato elenco degli indirizzi era vuoto ovviamente.
Il che dimostra sempre che a) il backup e' una ottima cosa, b) guarda cosa ca$$o stai facendo e c) la differenza tra un CL ed un sysadmin e' che il sysadmin e' in grado di recuperare dal proprio momento "ohca$$o".
Davide
03/08/2009 08:00
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.
buon lunedì By Melanippe posted 03/08/2009 08:06
Tornando alla storia, è bello vedere uno che ammette che sbaglia e ci mette una pezza.
Di solito chi più sbaglia, non ha assolutamente comprensione per gli errori (pur se infitamente meno gravi) altrui ed un bel badile gigante per sotterrare i propri. -- Melanippe
Beh.... By Herr Franz posted 03/08/2009 08:34
-- Herr Franz
Strategie anti "momenti oh ca$$o" By Gas posted 03/08/2009 08:46
Ovviamente sempre NON include le volte in cui servirebbe (:-P) ed ovviamente ho una quantita' di backup parziali inimmaginabile! -- -Gas-
Grazie, Davide! By Luca Menegotto posted 03/08/2009 08:56
E chi dice che non gli è mai successo mente spudoratamente (e non solo in campo informatico)! -- Luca Menegotto
ehm.... By Mauro Viola posted 03/08/2009 09:08
O il DB non le supporta?
Ciao! -- Mauro Viola
@ Mauro Viola By ringo posted 03/08/2009 10:42
O il DB non le supporta?
Evidentemente no, e la cosa mi lascia decisamente basito.
Da noi si usa Oracle, e il COMMIT e' un comando fondamentale, soprattutto nei casi come quello narrato, dove dopo una update effettuata troppo allegramente, il server risponde col messaggio:
548564 records updated
Mi rendo conto che e' da suicidio lavorare con un DB che non supporta COMMIT e ROLLBACK -- ringo
Attimi di terrore By Davide posted 03/08/2009 09:14
Da allora UPDATE SET WHERE è sempre preceduto da SELECT COUNT(*) FROM WHERE e lo statement di update è rigorosamente ottenuto dalla modifica della select.
E datemi pure del paranoico.
(*)Ho scherzato. In realtà ovviamente non mi fa piacere. -- Davide
commit e rollback By Franz posted 03/08/2009 09:21
vedo che non sono l'unico a cui capita... a me è capitato di scrivere l'update per intero (inclusa la where), ma siccome non voglio aprire 1000 finestre per gestire le 1000 query con le quali ho a che fare allo stesso tempo, scrivo tutto in una finestra e poi seleziono il testo da eseguire... indovina un po' quale parte mi era rimasta fuori dalla selezione?
Comunque quando si usano database che supportano le transazioni (e ci si ricorda di NON impostare il client in autocommit) c'e' sempre il magico "rollback"
-- Franz
E' un momento 'OhCa$$o' molto comune... By leonick posted 03/08/2009 09:50
Buon agosto, Big D.!
--
leonick
@ leonick By Paolo posted 03/08/2009 12:27
Se fai TRUNCATE di una tabella non c'è commit e rollback che tenga... ero così stordito che ho letto più volte il nome della tabella e non era quello giusto... meno male che non era ancora in produzione e i dati erano solo fasulli
Ciao, buon agosto a tutti !
P.S.
Ma sono solo io che non vedo i feed RSS aggiornati ? per la cronaca li aggrego con la home page di google... -- Paolo
Differenze tra utenti e sistemisti. By SIGLAZY posted 03/08/2009 10:01
Un utente "evoluto" combina piccoli e grandi disastri, sa quasi sempre quello che ha fatto ed è in grado di nascondere i propri errori.
Un sistemista "junior" è in grado di fare molti più disastri, ma poi sa quello che ha fatto, sa come correggere alcuni errori e sa a chi chiedere di correggere gli errori che non sa correggere da solo.
Un sistemista "senior" fa pochissimi disastri, ma quando li fa sono grossi; sa come correggere gli errori e sa che, se non è in grado di correggerli, nessuno al mondo saprà farlo e così dovrà imparare/inventare un altro "trucco da sistemista senior". -- SIGLAZY
@ SIGLAZY By Kurgan posted 03/08/2009 11:37
[eccetera]
Questa definizione dei vari livelli di capacita` tecnica la trovo molto bella, me la salvo da qualche parte. -- Il massimo danno con il minimo sforzo
distrazioni By Eugenio Dorigati posted 03/08/2009 10:19
@ Eugenio Dorigati By Kurgan posted 03/08/2009 11:40
Concordo. E tipicamente quando sei li` che ti stai scervellando e rileggi 10 volte quello che hai scritto prima di dare ENTER, arriva il CL di turno e vedendo che non stai scrivendo, ma solo guardando il monitor, inizia: "scusa, visto che sei li` che non fai niente, io ho bisogno di yadda yadda yadda..." e ti rompe la concentrazione. Dopo che gli hai spaccato in testa la crimpatrice per gli RJ45, ti serve una mezz'ora per ricordarti dove eri arrivato.
E la produttivita` si inabissa.
-- Il massimo danno con il minimo sforzo
@ Kurgan By Simone posted 03/08/2009 12:02
Purtroppo capita più volte al giorno, i sysadmin dovrebbero girare armati e licenza di lartare -- - Simone
Alt! By Herr Franz posted 03/08/2009 10:45
Gravissimo!!! -- Herr Franz
capita a tutti By argaar posted 03/08/2009 10:50
apro la shell, e dò "sudo usermod -G www-data davide"
ora, chi sa, ubuntu non ha l'account root abilitato, e (e questo ve lo dico io) il file dei "sudoers" è settato per dare quel privilegio non al singolo utente ma ai membri del gruppo admin.
mettere il relazione la notizia appena appresa, il comando dato e il concetto di reboot.
fatto? bene, ho dovuto prendere un cd di ubuntu 5, modificare il file /etc/sudoers includendo il mio utente, rebootare da hard-disk ed aspettare lunedi per arrivare in ufficio, installare in VM ubuntu e vedere che diavolo di gruppi sono assegnati di default ad un utente creato in fase di installazione.
(se ve lo state chiedendo, è capace che ci sia un metodo più semplice per sapere i gruppi...ma io non lo so) -- Noi esploriamo...e ci chiamate criminali...
Differenza CL/sysadmin By BudSpencer posted 03/08/2009 11:07
Aggiungerei anzi che
a) tipicamente il sysadmin si rende conto di avere appena avuto un momento "ohca$$o", mentre il CL no, continua a sbattere contro il "non funziona" come una mosca sul vetro
b) tipicamente il sysadmin è in grado di recuperare in autonomia dal proprio momento "ohca$$o", mentre il CL sbianca, bestemmia e si fionda a chiedere aiuto urgentissimo ad altri
c) la precedente è ovviamente l'ipotesi ottimistica, dato che tipicamente il CL dopo il proprio momento "ohca$$o" s-e-n-e-s-b-a-t-t-e e tenta di insabbiare il caso, riversando la colpa su altri.
Bud
-- BudSpencer
per tutti "Commit" e "Transazioni" By Davide Bianchi posted 03/08/2009 11:17
@ Davide Bianchi By Michele Montanari posted 03/08/2009 12:06
Che il bullshit level sia paurosamente vicino al "I'm Gonna kill someone who's not a Sysadmin".... -- Michele Montanari
@ Davide Bianchi By Enrico 'Henryx' Bianchi posted 08/08/2009 13:46
Che l'engine dei database e` MyISAM. Brutta, bruttissima mossa, personalmente farei una conversione massiva delle tabelle in InnoDB (ovviamente prima testo tutto in un ambiente creato appositamente per l'occasione)
Enrico -- Enrico 'Henryx' Bianchi
Succede spesso ancha a me... By Alberto posted 03/08/2009 11:46
Il backup e' buono... By Daniele posted 03/08/2009 13:47
il backup mi fa dormire sogni tranquilli!!!
;-) -- Daniele
Succede a tutti By Flaz posted 03/08/2009 14:08
Sarebbe bastato un banale riavvio, peccato fossero le 23.00 di venerdì sera. Ergo mx principale di posta down per tutto il weekend! -- http://flaz.biz
Un'altra frase storica By BigFab posted 03/08/2009 15:34
Da stampare a caratteri cubitali ed appenderla sopra il proprio monitor, a perenne monito e ricordo!
Saluti. -- E sono il cinquecentesimo...
Si vede che... By Alex ARNZ posted 03/08/2009 16:30
Nella mia azienda, per un problema simile (cancellazione "accidentale" di un DB), fecero:
1. riunione per capire l'accaduto
2. riunione (con altre persone) per fare uno "studio di fattibilità".
3. riunione (con altre persone ancora) per studiare il piano di ripristino.
4. riunione per capire perché se il DB era stato cancellato, le cose continuavano a funzionare senza problemi.
Il punto 4 rimane ancora molto criptico, (quasi) nessuno riuscì a capire che cosa era successo.
La soluzione la sappiamo solo io ed un collega (quello che cancellò il DB). Quando i capi stavano predisponendo la sala riunioni per il punto UNO, 'erano due persone che anziché perdere tempo, fecero immediatamente un restore del DB.
La cancellazione fu eseguita alle tre del pomeriggio, la riunione UNO fu indetta per le sei (tre ore più tardi). Il nastro del restore finì di girare poco prima delle quattro. La riunione TRE venne indetta per le 10 della mattina seguente. La riunione QUATTRO per le cinque di sera, del giorno dopo.... -- Alex ARNZ
@ Alex ARNZ By Kurgan posted 03/08/2009 19:37
Nella mia azienda, per un problema simile (cancellazione "accidentale" di un DB), fecero:
[eccetera]
MITICO! Se non era per voi, restavano senza database per un paio di giorni prima di arrivare finalmente a deliberare che (guarda un po`) occorreva ricaricarlo dal backup.
-- Il massimo danno con il minimo sforzo
@ Alex ARNZ By Anonymous coward posted 04/09/2009 14:32
> Nella mia azienda, per un problema simile (cancellazione "accidentale" di un DB), fecero:
> 1. riunione per capire l'accaduto
> 2. riunione (con altre persone) per fare uno "studio di fattibilità".
> 3. riunione (con altre persone ancora) per studiare il piano di ripristino.
> 4. riunione per capire perché se il DB era stato cancellato, le cose continuavano a funzionare senza problemi.
>
> Il punto 4 rimane ancora molto criptico, (quasi) nessuno riuscì a capire che cosa era successo.
> La soluzione la sappiamo solo io ed un collega (quello che cancellò il DB). Quando i capi stavano predisponendo la sala riunioni per il punto UNO, 'erano due persone che anziché perdere tempo, fecero immediatamente un restore del DB.
>
> La cancellazione fu eseguita alle tre del pomeriggio, la riunione UNO fu indetta per le sei (tre ore più tardi). Il nastro del restore finì di girare poco prima delle quattro. La riunione TRE venne indetta per le 10 della mattina seguente. La riunione QUATTRO per le cinque di sera, del giorno dopo....
>
>
E poi si accorsero che il DB era quello che gestiva le prenotazioni della sala riunioni ? -- Anonymous coward
in ogni caso By Anonymous coward posted 03/08/2009 16:49
Ci scusiamo per l'interruzione By Luca BG posted 03/08/2009 18:08
Ed ovviamente, riesco lo stesso ad avere i miei bei momentini "OhCa$$o". Ma per lo meno faccio del mio meglio... -- Luca BG
quanti bei ricordi... By WM posted 03/08/2009 23:39
quello che ricordo era che con il programma da mettere a punto erano parecchi gli interventi da fare sul server 0r@cl3 di prova per liberare i vari lock lasciati da una query che poi era stata interrotta da un baco
comunque grazie per la "risata" (eh si, quando ho letto che mancava il where... )
WM -- WM
Fatto la stessa cosa By Cymon posted 04/08/2009 00:00
LIMITati... By St0rM posted 04/08/2009 00:38
Che coincidenza... By frakka posted 04/08/2009 03:11
Mandato una mail alle 04.00 di mattina (capito perchè avevo sonno??) all'impiegata che si occupa di ruotare i supporti di backup e recuperato il file appena sveglio.
E nessuno si è accorto di nulla, per fortuna. -- frakka
codus interruptus By z f k posted 04/08/2009 09:45
Ovvio che poi per rimettermi in carreggiata devo ricostruire che cattso stavo facendo e perche' cattso lo stavo facendo (lo sapete meglio di me come funziona), ma almeno non ho "parentesi aperte".
Ora che ci penso fa un po' adventure games ^_^;
CYA -- z f k
Identico... By Joe posted 04/08/2009 17:56
@ Joe By Davide Bianchi posted 04/08/2009 18:33
Il senno di poi e' sempre una scienza esatta.
-- Davide Bianchi
oh perdindirindina!!! By Matteo Jurman posted 06/08/2009 16:58
cioe', successo ad aprile, ma me ne sono accorto or ora ravanando tra le varie risorse...
risolto senza che nessuno se ne accorgesse...
e non fatemi la menata uh, son passati 4 mesi senza che nessuno se ne accorgesse, ma perche' non hai lasciato come stava? il punto e' che io, come credo la maggior parte di tutti quelli che leggono queste storie, se finisco nel momento OhCa$$o, devo sistemare a prescindere...
comunque, e' proprio vero, la differenza tra un CL ed un sysadmin e' che il sysadmin e' in grado di recuperare dal proprio momento "ohca$$o".
--
---
BabboMatteo
Meno male che non sono l'unico :D By Motosauro posted 07/08/2009 23:41
Buone ferie a tutti -- Those who do not understand Unix are condemned to reinvent it, poorly.
-- Henry Spencer
Beh,.... By Herr Franz posted 08/08/2009 07:51
Chiama il sysadmin e poi gli lascia fare il sacro bkup temepestandolo di "+ in fretta!+ in fretta!"(e nega di essere stato lui a causare il casino)! -- Herr Franz
Terrore dall'update profondo... By UsarePiediSePiediMeglioDITesta posted 16/09/2009 00:25
Pertanto, da noi in $tantofiniamoallaneurolostesso.com, vige la regola della doppia chiave per armare i missili : uno scrive la query, l'altro la guarda, il primo preme il tasto NOreturn. E per ora ce la siamo cavata, anche se ogni volta sono sudori gelidi...
Ciao a tutti !
-- UsarePiediSePiediMeglioDITesta
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.