Open autarch opened 3 years ago
From drolsky@cpan.org (@autarch) on 2014-11-09 04:32:31 :
On Fri Dec 06 04:17:46 2013, rikard.nordgren@farmbio.uu.se wrote:
The short program below crashes perl 50% of the time with the following error:
Error in `perl': corrupted double-linked list: 0x0000000001baeeb8
I use MooseX::Params::Validate 0.18 with perl 5.14.2 on Ubuntu 13.10
!/usr/bin/perl
use MooseX::Params::Validate;
sub func { my %parm = validatedhash(\@, filter => { isa => 'ArrayRef[Int]', optional => 1 }, ); }
my @filt;
foreach (my $i = 0; $i < 16000; $i++) { $filt[$i] = 1; }
func('filter' => \@filt);
Sorry I didn't reply before. Does this still happen with a newer Perl too?
From rikard.nordgren@farmbio.uu.se on 2014-11-10 09:08:10 :
I run the script on perl 5.18.2 on 64 bit Ubuntu 14.04 and I still get a perl crash. I cannot test on any later version.
This is the output:
Error in `perl': free(): corrupted unsorted chunks: 0x000000000290ae60 Aborted (core dumped)
From rikard.nordgren@farmbio.uu.se on 2014-12-05 10:51:46 :
I have two more things to add:
If 'ArrayRef[Int]' is replaced with 'ArrayRef' the program above will not crash.
I have another program that crashes for the same reason on Windows 7 with strawberry perl 5.20.1.1 Perl either crashes with no message or "Bizarre copy of ... in list assignment in MooseX/Params/Validate.pm line 63" Here it was 'ArrayRef[Str]' which replaced to 'ArrayRef' caused the crashing to stop. Unfortunately my crashing program is really big and I haven't been able to reduce it to a small program without it not crashing any more.
On 2014-11-09 05:32, Dave Rolsky via RT wrote:
<URL: https://rt.cpan.org/Ticket/Display.html?id=91211 >
On Fri Dec 06 04:17:46 2013, rikard.nordgren@farmbio.uu.se wrote:
The short program below crashes perl 50% of the time with the following error:
Error in `perl': corrupted double-linked list: 0x0000000001baeeb8
I use MooseX::Params::Validate 0.18 with perl 5.14.2 on Ubuntu 13.10
!/usr/bin/perl
use MooseX::Params::Validate;
sub func { my %parm = validatedhash(\@, filter => { isa => 'ArrayRef[Int]', optional => 1 }, ); }
my @filt;
foreach (my $i = 0; $i < 16000; $i++) { $filt[$i] = 1; }
func('filter' => \@filt); Sorry I didn't reply before. Does this still happen with a newer Perl too?
-- Rikard Nordgren Systems developer
Dept of Pharmaceutical Biosciences Faculty of Pharmacy Uppsala University Box 591 75124 Uppsala
Phone: +46 18 4714308 www.farmbio.uu.se/research/researchgroups/pharmacometrics/
From srezic@cpan.org (@eserte) on 2014-12-05 19:09:27 :
On 2014-11-08 23:32:31, DROLSKY wrote:
On Fri Dec 06 04:17:46 2013, rikard.nordgren@farmbio.uu.se wrote:
The short program below crashes perl 50% of the time with the following error:
Error in `perl': corrupted double-linked list: 0x0000000001baeeb8
I use MooseX::Params::Validate 0.18 with perl 5.14.2 on Ubuntu 13.10
!/usr/bin/perl
use MooseX::Params::Validate;
sub func { my %parm = validatedhash(\@, filter => { isa => 'ArrayRef[Int]', optional => 1 }, ); }
my @filt;
foreach (my $i = 0; $i < 16000; $i++) { $filt[$i] = 1; }
func('filter' => \@filt);
Sorry I didn't reply before. Does this still happen with a newer Perl too?
I can also reproduce the crashes with the sample script on a Debian/wheezy system, and it seems to affect all perl versions. Here's a list of number of crashes -> perl version:
$ sort /tmp/blacrashes.log | uniq -c 4 /opt/perl-5.10.1/bin/perl crashed 2 /opt/perl-5.12.5/bin/perl crashed 6 /opt/perl-5.14.4/bin/perl crashed 6 /opt/perl-5.16.3/bin/perl crashed 6 /opt/perl-5.18.2/bin/perl crashed 6 /opt/perl-5.18.2t/bin/perl crashed 6 /opt/perl-5.18.3-RC1/bin/perl crashed 6 /opt/perl-5.18.4/bin/perl crashed 6 /opt/perl-5.18.4t/bin/perl crashed 1 /opt/perl-5.19.11/bin/perl crashed 1 /opt/perl-5.20.0-RC1/bin/perl crashed 2 /opt/perl-5.20.0/bin/perl crashed 2 /opt/perl-5.20.0t/bin/perl crashed 3 /opt/perl-5.20.1-RC1/bin/perl crashed 1 /opt/perl-5.20.1-RC2/bin/perl crashed 2 /opt/perl-5.20.1/bin/perl crashed 6 /opt/perl-5.20.1d/bin/perl crashed 3 /opt/perl-5.21.3/bin/perl crashed 4 /opt/perl-5.21.4/bin/perl crashed 1 /opt/perl-5.21.5/bin/perl crashed 6 /opt/perl-5.21.6/bin/perl crashed
Migrated from rt.cpan.org #91211 (status was 'open')
Requestors:
From rikard.nordgren@farmbio.uu.se on 2013-12-06 09:17:46 :
The short program below crashes perl 50% of the time with the following error:
Error in `perl': corrupted double-linked list: 0x0000000001baeeb8
I use MooseX::Params::Validate 0.18 with perl 5.14.2 on Ubuntu 13.10
!/usr/bin/perl
use MooseX::Params::Validate;
sub func { my %parm = validatedhash(\@, filter => { isa => 'ArrayRef[Int]', optional => 1 }, ); }
my @filt;
foreach (my $i = 0; $i < 16000; $i++) { $filt[$i] = 1; }
func('filter' => \@filt);