Re: Segfault in XML::LibXML

Bruce Miller <[email protected]>
Newsgroups gmane.comp.lang.perl.xml
Organization NIST
Message-ID <[email protected]>
Petr Pajas wrote:
> I wonder why Fedora whould ship XML::LibXML 1.66. Install something newer from 
> CPAN (latest is XML-LibXML-1.69_2). You'll also have to upgrade  XML::LibXSLT.

I dunno... It's in the development directory, but I guess that's
slated for Fedora 11, rather than an update for F10.
Don't even ask what version is available on enterprise/centos... :<

> Also, is it really libxml2-2.6.3.1? or did you misspell the version and it is 
> actually libxml2-2.6.31? 

No, sorry: typo, it's 2.7.3-1
> 
> Please verify that the bug goes away with the latest version and if so, 
> request at Fedora (e.g. using their bugzilla) that they upgrade to the up-
> stream version of XML::LibXML.

Sorry for the delay; I've gotten lazy having my
packages managed for me, so it took a moment
to set up to test a non-packaged package....

Anyway: Good call! 1.69 indeed fixes the problem.
Valgrind is happy, and my system runs all the
way through w/o problems!

Thanks!

[I'll try to rattle fedora's cage]

> -- Petr
> 
> Dne pátek 27 Únor 2009 18:35:08 Bruce Miller napsal(a):
>> Hi all;
>>    I've just started getting one of those lovely errors
>> we all enjoy so much. You know the ones: they sometimes
>> give segfaults, but not every time, and only happens
>> on long jobs...
>>
>> So, I ran valgrind (with PERL_DESTRUCT_LEVEL=2),
>> which then takes _even_ longer, and end up with
>> some kind of reference counting error, I presume?
>> (see below).
>> This is on fedora 10,
>> perl-5.10.0-56
>> libxml2-2.6.3.1
>> perl-XML-LibXML-1.66-2
>>
>> Undoubtedly, this isn't enough to proceed with,
>> but as this is relatively unfamiliar territory
>> for me: Does anyone have suggestions how to
>> localize the problem better?
>>
>>> ==4053== Invalid read of size 8
>>> ==4053==    at 0xAF9F838: PmmREFCNT_dec (in
>>> /usr/lib64/perl5/vendor_perl/5.10.0/x86_64-linux-thread-multi/auto/XML/Li
>>> bXML/LibXML.so) ==4053==    by 0xAF32D1A: XS_XML__LibXML__Node_DESTROY (in
>>> /usr/lib64/perl5/vendor_perl/5.10.0/x86_64-linux-thread-multi/auto/XML/Li
>>> bXML/LibXML.so) ==4053==    by 0x38EA4BF6B4: Perl_pp_entersub (in
>>> /usr/lib64/perl5/5.10.0/x86_64-linux-thread-multi/CORE/libperl.so)
>>> ==4053==    by 0x38EA4BA90B: Perl_call_sv (in
>>> /usr/lib64/perl5/5.10.0/x86_64-linux-thread-multi/CORE/libperl.so)
>>> ==4053==    by 0x38EA4D63DC: Perl_sv_clear (in
>>> /usr/lib64/perl5/5.10.0/x86_64-linux-thread-multi/CORE/libperl.so)
>>> ==4053==    by 0x38EA4D6D40: Perl_sv_free2 (in
>>> /usr/lib64/perl5/5.10.0/x86_64-linux-thread-multi/CORE/libperl.so)
>>> ==4053==    by 0x38EA4D66F0: Perl_sv_clear (in
>>> /usr/lib64/perl5/5.10.0/x86_64-linux-thread-multi/CORE/libperl.so)
>>> ==4053==    by 0x38EA4D6D40: Perl_sv_free2 (in
>>> /usr/lib64/perl5/5.10.0/x86_64-linux-thread-multi/CORE/libperl.so)
>>> ==4053==    by 0x38EA4ADAF0: Perl_hv_free_ent (in
>>> /usr/lib64/perl5/5.10.0/x86_64-linux-thread-multi/CORE/libperl.so)
>>> ==4053==    by 0x38EA4AF020: (within
>>> /usr/lib64/perl5/5.10.0/x86_64-linux-thread-multi/CORE/libperl.so)
>>> ==4053==    by 0x38EA4B1020: Perl_hv_undef (in
>>> /usr/lib64/perl5/5.10.0/x86_64-linux-thread-multi/CORE/libperl.so)
>>> ==4053==    by 0x38EA4D6805: Perl_sv_clear (in
>>> /usr/lib64/perl5/5.10.0/x86_64-linux-thread-multi/CORE/libperl.so)
>>> ==4053==  Address 0x2711ff30 is 0 bytes inside a block of size 34 free'd
>>> ==4053==    at 0x4A0609F: free (vg_replace_malloc.c:323)
>>> ==4053==    by 0x38EA4B05C1: Perl_hv_common (in
>>> /usr/lib64/perl5/5.10.0/x86_64-linux-thread-multi/CORE/libperl.so)
>>> ==4053==    by 0x38EA4C3B09: Perl_pp_helem (in
>>> /usr/lib64/perl5/5.10.0/x86_64-linux-thread-multi/CORE/libperl.so)
>>> ==4053==    by 0x38EA494AC6: Perl_runops_debug (in
>>> /usr/lib64/perl5/5.10.0/x86_64-linux-thread-multi/CORE/libperl.so)
>>> ==4053==    by 0x38EA4BB5D6: perl_run (in
>>> /usr/lib64/perl5/5.10.0/x86_64-linux-thread-multi/CORE/libperl.so)
>>> ==4053==    by 0x400CF3: main (in /usr/bin/perl)
>>>
>>> ==4053==
>>> ==4053== ERROR SUMMARY: 2 errors from 1 contexts (suppressed: 4 from 1)
>>> ==4053== malloc/free: in use at exit: 56,246 bytes in 521 blocks.
>>> ==4053== malloc/free: 323,176,837 allocs, 323,176,316 frees,
>>> 21,619,182,773 bytes allocated. ==4053== For counts of detected errors,
>>> rerun with: -v
>>> ==4053== searching for pointers to 521 not-freed blocks.
>>> ==4053== checked 803,936 bytes.
>>> ==4053==
>>> ==4053== LEAK SUMMARY:
>>> ==4053==    definitely lost: 0 bytes in 0 blocks.
>>> ==4053==      possibly lost: 0 bytes in 0 blocks.
>>> ==4053==    still reachable: 56,246 bytes in 521 blocks.
>>> ==4053==         suppressed: 0 bytes in 0 blocks.
>>> ==4053== Rerun with --leak-check=full to see details of leaked memory.
> 


-- 
[email protected]
http://math.nist.gov/~BMiller/
_______________________________________________
Perl-XML mailing list
[email protected]
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.