Beefy Boxes and Bandwidth Generously Provided by pair Networks
laziness, impatience, and hubris
 
PerlMonks  

Re: XML::Twig too many children?

by mirod (Canon)
on Feb 22, 2012 at 08:54 UTC ( #955478=note: print w/ replies, xml ) Need Help??


in reply to XML::Twig too many children?

Good job everybody, but you did not go far enough ;--) It's not a bug in XML::Parser, I believe it's a bug in Perl: if you use weaken a few thousand times it will segfault.

The code below shows the bug:

#!/usr/bin/perl use strict; use warnings; use Scalar::Util 'weaken'; # the number of iteration that causes a segmentation fault varies # on my machine, 5.14.2 18700, 5.12.4 20147, At this thresholds # the bug shows up most of the time but not always + + + my $ITER= $ARGV[0] || 18700; + + + + my $head= {}; + + my $tail= $head; + + + + foreach (1..$ITER) { my $new_tail= { p => $tail }; weaken( $new_tail->{p}); $tail->{n}= $new_tail; $tail= $new_tail; } print "done\n";

The good news is that the bug is fixed in blead and in recent 5.15.*. I don't know which version exactly, but I know it's fixed in 5.15.7. and in 5.15.8.

So, if possible, you should use perlbrew, install 5.15.8 and get the development version of XML::Twig from xmltwig.org since XML::Twig 3.39 produces warnings in 5.15.8. Once you've re-installed all of the modules you use, your script should then work properly. BTW the development version of XML::Twig passes all the tests, so it is safe to use.

Let me know if you have any more problem.


Comment on Re: XML::Twig too many children?
Download Code
Re^2: XML::Twig too many children?
by Anonymous Monk on Jun 24, 2012 at 04:04 UTC

    I see no leak here on windows, perl 5.14.1 mingw/gccversion='4.5.2' ( full perl -V here )

    $ perl leak.weaken.twig.pl done $ perl leak.weaken.twig.pl 28700 done $ perl leak.weaken.twig.pl 48700 done $ perl leak.weaken.twig.pl 148700 done $ perl leak.weaken.twig.pl 1348700 done

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://955478]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others wandering the Monastery: (6)
As of 2015-07-03 23:48 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (57 votes), past polls