Mas o Stanislaw esta usando perl 5.10? Achei que o recomendado era 5.12 e 5.14 pois nenhum bugfix seria aplicado mais no 5.10.x
2011/11/14 Gabriel Andrade <[email protected]>: > > On Nov 13, 2011, at 6:24 PM, Stanislaw Pusep wrote: > >> Wallace: boa, fiz o downgrade para e funcionou perfeitamente... Na tentativa >> e erro, descobri que o *leak* foi introduzido no DBIx-Class-0.08194. >> Eden: where is your God now? >> > > Vamos lá: > > $ git clone git://git.shadowcat.co.uk/dbsrgits/DBIx-Class.git ; cd > DBIx-Class; > $ git diff v0.08193..v0.08194 lib/ > > Dando uma olhada por cima, o único trecho suspeito parece ser esse: > > diff --git a/lib/DBIx/Class/Storage/DBI/Pg.pm > b/lib/DBIx/Class/Storage/DBI/Pg.pm > index f4dbda6..0dc7ea8 100644 > --- a/lib/DBIx/Class/Storage/DBI/Pg.pm > +++ b/lib/DBIx/Class/Storage/DBI/Pg.pm > > (...) > > require DBD::Pg; > - if ($DBD::Pg::VERSION < 2.009002) { > - carp_once( __PACKAGE__.": DBD::Pg 2.9.2 or greater is strongly > recommended\n" ); > + > + if ($self->_server_info->{normalized_dbms_version} >= 9.0) { > + if (not try { DBD::Pg->VERSION('2.17.2') }) { > + carp_once( __PACKAGE__.': BYTEA columns are known to not work on Pg >=' > + . " 9.0 with DBD::Pg < 2.17.2\n" ); > + } > + } > + elsif (not try { DBD::Pg->VERSION('2.9.2') }) { > + carp_once( __PACKAGE__.': DBD::Pg 2.9.2 or greater is strongly > recommended' > + . "for BYTEA column support.\n" ); > } > > Esse commit mostra que deixou-se de testar a versão usando a variável escalar > $VERSION no pacote do DBD::Pg e passou-se a confiar no UNIVERSAL::VERSION, > que é conhecido por vazar memória nas versões do perl 5.10+ [1]. Esse bug já > foi consertado nas versões 5.12.4+. > > Uma busca no source do dbic ( ack -Q -- '->VERSION' lib/ ) mostrou que o uso > do UNIVERSAL::VERSION aparece também em DBIx::Class::Storage::DBI::ADO e > DBIx::Class::Optional::Dependencies. Como o DBIC::O::D é usado somente > durante o processo de instalação/testes para reportar erros de dependências, > e também acredito que você não está se misturando com a gentalha da M$... > então podemos inferir que você esteja usando o PostgreSQL, portanto, em algum > momento a execução passa por esse caminho do código. > > Dado os supracitados fatos, só nos resta supor que o motivo do leak é o seu > perl antigo, provavelmente um 5.10ish, em conjunto com um UNIVERSAL::VERSION > vazando a torto e a direito. > > Veredito: o DBIx::Class é inocente. :) > > > Putz.. se eu errei, pelo menos foi um bom uso de lógica dedutiva no processo > de investigação. > > [1] - > http://grokbase.com/p/perl.org/perl5-changes/2011/08/perl-git-branch-maint-5-12-updated-v5-12-4-20-g082c8d2/30gxbrcxoo4u2y4xxux3fwfod3vq > =begin disclaimer > Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ > SaoPaulo-pm mailing list: [email protected] > L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> > =end disclaimer > -- Tiago B. Peczenyj Linux User #405772 http://pacman.blog.br =begin disclaimer Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ SaoPaulo-pm mailing list: [email protected] L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> =end disclaimer
