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.
| [reply] [Watch: Dir/Any] |
| [reply] [Watch: Dir/Any] |
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";
| [reply] [Watch: Dir/Any] [d/l] |