Newsgroup: it.comp.os.linux.sys
Titolo: con l'opensource, quando viene scoperto un bug... [OT]

 
... prima o poi dovrai imparari a conviverci: 
https://bugs.launchpad.net/percona-xtrabackup/+bug/1272329
 
 
 
-- 
Massimiliano Adamo


 
...be'. Io sono un giovane che lavora vi' da poco e di sicuro sto prendendo
un granchio, ma alla riga 4685
 
	os_file_closedir(dir);
 
...non dovrebbe essere cosi'?
 
	if (dir != NULL) {
             os_file_closedir(dir);
        }
 
Nel caso che ti venga un errore "Cannot open dir" *subito prima* del botto,
io una prova guasi guasi la farei.
 
Se no, boh, se qualche anima pia mi spiega come accedere a un .tar.gz cosi'
da poter leggere quei benedetti sorgenti senza installare pure Cristo sulla
croce [1], anche a me pare che mettere l'opzione non sia una cosa spaziale.
 
Dopo avere visto Launchpad, e' stato difficile resistere alla tentazione di
disinstallare Linux da tutte le macchine e installarci MS-DOS 3.30, dicendo
"Se consente di fare questo, allora Linux e' una cosa malvagia".
 
Leonardo
 
[1] avant'ieri mi si dice di installare SASS (long story). E come si fa? E'
    semplice - installi le dipendenze di Ruby, poi installi Ruby, poi metti
    su NodeJS, installi Bower, installi Grunt, tiri dentro la Foundation 5,
    e sei a posto. Bower tira dentro altra roba... ho finito per installare
    STFU CSS ("Cos'e'?" "Dei file CSS" "E che altro?" "Niente." "E come fai
    a usarlo?" "Apri i CSS, scrivi in CSS, salvi il CSS. Se lo trovi troppo
    complicato, STFU e cambi mestiere. Semplice, diretto, economico"). Sono
    probabilmente un primitivo, lo so. Ma se rendermi la vita *facile* deve
    prevedere di sacrificare una vergine a Yog-Sothoth mi tengo la mia vita
    complicata e me la faccio perfino piacere, che'.
 
-- 
 
Questi non hanno speranza di morte; e la lor cieca vita e' tanto bassa,
Che 'nvidiosi son d'ogne altra sorte. Fama di loro il mondo esser non lassa;
Misericordia e Giustizia li sdegna; non ragioniam di lor, ma guarda e passa.

 ...be'. Io sono un giovane che lavora vi' da poco
 
Bella quella giacchetta!


 
 
 
Non e detto,dipende cosa fa msg("...
 
 
Potrebbe anche fare un abort od un setjmp
 
[CUT]
 
 

 
 
yes, ma il programma xtrabackup in realtà è "wrappato" da uno script in 
perl: innobackupex 
Ho aperto io stesso quel bug un anno fa, ma francamente non ricordo più se 
il problema si verificava già all'interno del wrapper... se non ricordo 
male il wrapper controlla lui stesso le directory. 
 
p.s.: si lo so.... se così fosse, il perl potrei anche sistemarlo da me. A 
questo punto si solleva un problema etico: è giusto che M. Adamo debba 
farsi sfruttare dalla corporation Percona, facendo il lavoro al posto 
loro? Capisco bene che io usufruisco dei loro software aggratise, però che 
lo fanno a fare una bugtrack se poi nei fatti non fanno nulla per 
sistemare anche la cosa più banale? Aspettano sempre il pollo che faccia 
il lavoro al posto loro? A loro i soldi e agli altri la "gloria"? 
 
-- 
Massimiliano Adamo

 
 
Si, è lo script perl che muore per primo. Se lo script perl salta le 
directory il prolem
 
c'è un controllo in diversi punti, ma quello cruciale, che avviene durante 
il backup, mi sembra questo (riga 4040):
 
    opendir(DIR, $source_dir)
        || die "Can't open directory '$source_dir': $!";
 
 
Posso ipotizzare che xtrabackup venga chiamato per le singole tabelle (o 
forse schema, chissà) da innobackupex. 
 
Potrebbe essere sufficiente creare un array con le directory da escludere. 
 
 
-- 
Massimiliano Adamo

 escludere.
 
 
facciamo così... mi rivolgo al gruppo per chiedere aiuto su perl. 
Ci sono 2 possibilità:
1. lanciare mysql con l'opzione --ignore-db-dir. Se le directory da 
ignorare sono più di una, l'opzione va usata di nuovo per ciascuna dir da 
ignorare.
2. scrivere nel my.cnf ignore_db_dir=blablah su tante righe per quante 
sono le directory che si vogliono escludere. Esempio: 
ignore_db_dir=.ssh
ignore_db_dir=lost+found
 
lasciamo perdere l'opzione 1 ... non lavoro per Percona e voglio una 
soluzione fatta in casa per me. Dopo faccio una patch e la propongo pure a 
loro. 
 
In Python apro il file e aggiungo all'array tutti gli elementi contenenti 
quella occorrenza. Qual è la sintassi per perlizzare questa bischerata? :)
 
grazie. 
 
-- 
Massimiliano Adamo

Potrebbe anche fare un abort od un setjmp
 
L'avrei detto anch'io, senonche' altrove e' seguita da altro codice, tipo
 
	msg("...");
	return FALSE;
 
Leonardo


il lavoro al posto loro? A loro i soldi e agli altri la "gloria"? 
 
Agli altri anche l'app agratisse, non scordartela quella ;-)
 
Leonardo



 
Come non  detto
oppure è quel return FALSE che è ridondante
 

 azteco per fare la prova; quelli che ho, servono :-)
 
però, secondo me, se non riesce ad aprire uno dei suoi schemi effettivi 
(tra quelli definiti nella tabella "db" dello schemda "mysql") potrebbe 
morire ugualmente. Non ho nemmeno io un MySQL, ma ti posso dire che basta 
molto meno per spedirlo nell'aldilà. Basta danneggiare una tabella e lui 
fa kamikaze. 
 
 
-- 
Massimiliano Adamo