Skip Menu |

This queue is for tickets about the MooseX-Params-Validate CPAN distribution.

Report information
The Basics
Id: 91211
Status: open
Priority: 0/
Queue: MooseX-Params-Validate

People
Owner: Nobody in particular
Requestors: rikard.nordgren [...] farmbio.uu.se
Cc:
AdminCc:

Bug Information
Severity: (no value)
Broken in: (no value)
Fixed in: (no value)



Subject: Perl crash when calling validated_hash
Date: Fri, 6 Dec 2013 10:17:51 +0100
To: <bug-MooseX-Params-Validate [...] rt.cpan.org>
From: Rikard Nordgren <rikard.nordgren [...] farmbio.uu.se>
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 = validated_hash(\@_, filter => { isa => 'ArrayRef[Int]', optional => 1 }, ); } my @filt; foreach (my $i = 0; $i < 16000; $i++) { $filt[$i] = 1; } func('filter' => \@filt);
On Fri Dec 06 04:17:46 2013, rikard.nordgren@farmbio.uu.se wrote: Show quoted text
> 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 = validated_hash(\@_, > 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?
Subject: [rt.cpan.org #91211] Perl crash when calling validated_hash
Date: Mon, 10 Nov 2014 10:08:42 +0100
To: <bug-MooseX-Params-Validate [...] rt.cpan.org>
From: Rikard Nordgren <rikard.nordgren [...] farmbio.uu.se>
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)
Subject: Re: [rt.cpan.org #91211] Perl crash when calling validated_hash
Date: Fri, 5 Dec 2014 11:51:38 +0100
To: <bug-MooseX-Params-Validate [...] rt.cpan.org>
From: Rikard Nordgren <rikard.nordgren [...] farmbio.uu.se>
I have two more things to add: 1. If 'ArrayRef[Int]' is replaced with 'ArrayRef' the program above will not crash. 2. 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: Show quoted text
> <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 = validated_hash(\@_, >> 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/
On 2014-11-08 23:32:31, DROLSKY wrote: Show quoted text
> 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 = validated_hash(\@_, > > 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