in reply to Re^2: Segmentation fault from XML::Twig::Elt
in thread Segmentation fault from XML::Twig::Elt

I can reproduce the problem in win32 (perl 5.12.3), but not on linux (perl5.12.3, 5.12.4 or 5.14.2). So since it's the same code on all 3 versions, I would think it's a bug somewhere in Scalar::Util::weaken or in the core, but only on windows. Which is a bit annoying since I don't develop on windows, I only use it to test modules before a release.

I am not sure where to go from there honestly. Any idea?

  • Comment on Re^3: Segmentation fault from XML::Twig::Elt

Replies are listed 'Best First'.
Re^4: Segmentation fault from XML::Twig::Elt
by isync (Hermit) on Nov 07, 2011 at 14:07 UTC
    Most in this thread already is beyond my knowledge of the internal workings,
    but I can contribute that I got this error on a:
    Debian 4.0 box with Perl v5.10.0 built for i486-linux-gnu-thread-multi with these module versions: and on
    Ubuntu 11.04 with Perl v5.10.1 (*) built for i686-linux-gnu-thread-multi.
Re^4: Segmentation fault from XML::Twig::Elt
by Anonymous Monk on Nov 08, 2011 at 04:46 UTC

      The bug is in Perl itself, and seems to be fixed in 5.15.5.

      The following code, which is the simplest I have found to trigger the problem, causes a segmentation fault for versions up to 5.14.2, but not in 5.15.5 or bleadperl:

      #!/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, blead # at these values, 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";