[SP-pm] "leak" no DBIx::Class?

Stanislaw Pusep creaktive at gmail.com
Mon Nov 14 05:08:50 PST 2011


++gabiruh!
Sim, é PostgreSQL! Todavia, o Perl é 5.14.1.
Eden, o schema que uso para testes é "peladão", gerado pelo dbicdump a
partir de uma tabela de 1 coluna do tipo character varying. Aliás, você não
está sendo construtivo me atacando por não gostar do DBIx::Class. Gosto é
igual braço: tem gente que não tem. Se eu gosto ou não do DBIx::Class, é
PROBLEMA MEU, seja como for, eu uso ele nos meus projetos e me interesso
pelo seu funcionamento estável. Assim que localizar o glitch, certamente
reportarei, como já fiz em outra ocasião (pelo jeito, tenho bastante
"sorte" em me esbarrar nos glitches do DBIx::Class :P).

ABS()



2011/11/14 Tiago Peczenyj <tiago.peczenyj em gmail.com>

> 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 <gabiruh em gmail.com>:
> >
> > 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: SaoPaulo-pm em pm.org
> >  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: SaoPaulo-pm em pm.org
>  L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
> =end disclaimer
>
-------------- Pr�xima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/saopaulo-pm/attachments/20111114/dec2914f/attachment.html>


More information about the SaoPaulo-pm mailing list