Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Glibc: double free or memory corruption crash running t/spec/S02-types/bool.t in Rakudo 2013.02.1-7-gb205e66 #3058

Closed
p6rt opened this issue Feb 26, 2013 · 16 comments

Comments

@p6rt
Copy link

p6rt commented Feb 26, 2013

Migrated from rt.perl.org#116933 (status was 'resolved')

Searchable as RT116933$

@p6rt
Copy link
Author

p6rt commented Feb 26, 2013

From quester.pm@gmail.com

Hello,

I updated Rakudo from git last night and did a make spectest. Only one
test failed, S02-types/bool.t.

It seems like if I run the entire test, it fails as shown in the
attachment. But, if I comment out *any* one of the last dozen or so lines
it runs to completion. Also, if I take the line at which the dump
occurs...

  *is Bool.roll(*).[^10].elems, 10, 'Bool.roll(*) contains at least 10
elems';*

... and place a copy of it after every existing line, the entire file runs.

I would think that this indicates that there must be some sort of boundary
condition involved in triggering the dump, perhaps something like garbage
collection.

Please let me know of anything you can think of that I could gather that
would be helpful in tracking this down.

The environment here is​:

rakudo version 2013.02.1-7-gb205e66 built on parrot 4.10.0 revision
RELEASE_4_10_0

nqp version 2013.02.1-16-gf70f431 built on parrot 4.10.0 revision
RELEASE_4_10_0

Parrot version 4.10.0-devel built for amd64-linux

Fedora 17 linux, 64 bit, kernel 3.7.9-101.fc17.x86_64

Gcc 4.7.2-2.fc17.x86_64

Glibc 2.15-58.fc17.x86_64

Best regards,
Ira Kevin Byerly
quester (on #perl6 and perlmonks)
quester.pm@​gmail.com

@p6rt
Copy link
Author

p6rt commented Feb 26, 2013

From quester.pm@gmail.com

Script started on Mon 25 Feb 2013 08​:40​:18 PM HST
$
$
$
$ perl6 -v
This is perl6 version 2013.02.1-7-gb205e66 built on parrot 4.10.0 revision RELEASE_4_10_0
$
$
$
$
$ cat t/spec/S02-types/bool.t
use v6;
use Test;
plan 51;

#L<S12/Built-in Enumerations/"Two built-in enumerations are">

# tests True and False are Bool's
isa_ok(Bool​::True, Bool);
isa_ok(Bool​::False, Bool);

# tests they keep their Bool'ness when stored
my $a = Bool​::True;
isa_ok($a, Bool);

$a = Bool​::False;
isa_ok($a, Bool);

# tests that Bool.Bool works
isa_ok (Bool​::True).Bool, Bool, "Bool.Bool is a Bool";
isa_ok (Bool​::False).Bool, Bool, "Bool.Bool is a Bool";
is (Bool​::True).Bool, Bool​::True, "Bool.Bool works for True";
is (Bool​::False).Bool, Bool​::False, "Bool.Bool works for False";

# tests that ?Bool works
isa_ok ?(Bool​::True), Bool, "?Bool is a Bool";
isa_ok ?(Bool​::False), Bool, "?Bool is a Bool";
is ?(Bool​::True), Bool​::True, "?Bool works for True";
is ?(Bool​::False), Bool​::False, "?Bool works for False";

# tests they work with && and ||
#?pugs 4 skip 'pass'
Bool​::True && pass('True works');
Bool​::False || pass('False works');

# tests they work with !
!Bool​::True || pass('!True works');
!Bool​::False && pass('!False works');

# tests True with ok()
ok(Bool​::True, 'True works');

# tests False with ok() and !
ok(!Bool​::False, 'False works');

# tests Bool stringification - interaction with ~
isa_ok(~Bool​::True, Str);
isa_ok(~Bool​::False, Str);
#?pugs 2 todo "stringification"
is(~Bool​::True, 'True', 'Bool stringification (True)');
is(~Bool​::False, 'False', 'Bool stringification (False)');
#?pugs 2 todo '.Str'
is Bool​::True.Str, 'True', 'True.Str';
is Bool​::False.Str, 'False', 'False.Str';
#?pugs 2 todo '.gist'
is Bool​::True.gist, 'True', 'True.gist';
is Bool​::False.gist, 'False', 'False.gist';
is Bool​::True.perl, 'Bool​::True', 'True.perl';
is Bool​::False.perl, 'Bool​::False', 'False.perl';

# numification - interaction with +
#?pugs 2 skip "Numeric"
ok(+Bool​::True ~~ Numeric);
ok(+Bool​::False ~~ Numeric);
#?pugs 2 todo "Int"
isa_ok(+Bool​::True, Int, 'True numifies to an Int');
isa_ok(+Bool​::False, Int, 'False numifies to an Int');

is(Bool​::True.Int, '1', 'True Intifies to 1');
is(Bool​::False.Int, '0', 'False Intifies to 1');

is(+Bool​::True, '1', 'True numifies to 1');
is(+Bool​::False, '0', 'False numifies to 0');

# Arithmetic operations
my $bool = Bool​::False;
is(++$bool, Bool​::True, 'Increment of Bool​::False produces Bool​::True');
#?pugs todo
is(++$bool, Bool​::True, 'Increment of Bool​::True still produces Bool​::True');
#?pugs todo 'Cannot cast from VBool True to VCode'
is(--$bool, Bool​::False, 'Decrement of Bool​::True produces Bool​::False');
#?pugs todo
is(--$bool, Bool​::False, 'Decrement of Bool​::False produces Bool​::False');

# RT #​65514
{
  #?pugs 2 skip 'Cannot cast from VBool True to VCode'
  ok (0 but Bool​::True), 'Bool​::True works with "but"';
  is (0 but Bool​::True), 0, 'Bool​::True works with "but"';
  #?pugs 2 skip 'Cannot cast from VBool False to VCode'
  ok !('RT65514' but Bool​::False), 'Bool​::False works with "but"';
  is ('RT65514' but Bool​::False), 'RT65514', 'Bool​::False works with "but"';
}

#?pugs skip '.key'
{
  is Bool​::True.key, 'True', 'Bool​::True.key works (is "True")';
  is Bool​::False.key, 'False', 'Bool​::False.key works (is "False")';
}

#?pugs skip '.pick'
{
  my $x = Bool.pick;
  ok ($x === True || $x === False), 'Bool.pick return True or False';
  is Bool.pick(*).elems, 2, 'Bool.pick(*) returns two elems';;
  my @​a = Bool.roll(30);
  ok @​a.grep({$_}), 'Bool.roll(30) contains a True';
  ok @​a.grep({!$_}), 'Bool.roll(30) contains a False';
  is Bool.roll(*).[^10].elems, 10, 'Bool.roll(*) contains at least 10 elems';

}

done;

# vim​: ft=perl6
$
$
$
$
$ perl6 t/spec/S02-types/bool.t
1..51
ok 1 - The object is-a 'Bool'
ok 2 - The object is-a 'Bool'
ok 3 - The object is-a 'Bool'
ok 4 - The object is-a 'Bool'
ok 5 - Bool.Bool is a Bool
ok 6 - Bool.Bool is a Bool
ok 7 - Bool.Bool works for True
ok 8 - Bool.Bool works for False
ok 9 - ?Bool is a Bool
ok 10 - ?Bool is a Bool
ok 11 - ?Bool works for True
ok 12 - ?Bool works for False
ok 13 - True works
ok 14 - False works
ok 15 - !True works
ok 16 - !False works
ok 17 - True works
ok 18 - False works
ok 19 - The object is-a 'Str'
ok 20 - The object is-a 'Str'
ok 21 - Bool stringification (True)
ok 22 - Bool stringification (False)
ok 23 - True.Str
ok 24 - False.Str
ok 25 - True.gist
ok 26 - False.gist
ok 27 - True.perl
ok 28 - False.perl
ok 29 -
ok 30 -
ok 31 - True numifies to an Int
ok 32 - False numifies to an Int
ok 33 - True Intifies to 1
ok 34 - False Intifies to 1
ok 35 - True numifies to 1
ok 36 - False numifies to 0
ok 37 - Increment of Bool​::False produces Bool​::True
ok 38 - Increment of Bool​::True still produces Bool​::True
ok 39 - Decrement of Bool​::True produces Bool​::False
ok 40 - Decrement of Bool​::False produces Bool​::False
ok 41 - Bool​::True works with "but"
ok 42 - Bool​::True works with "but"
ok 43 - Bool​::False works with "but"
ok 44 - Bool​::False works with "but"
ok 45 - Bool​::True.key works (is "True")
ok 46 - Bool​::False.key works (is "False")
ok 47 - Bool.pick return True or False
ok 48 - Bool.pick(*) returns two elems
ok 49 - Bool.roll(30) contains a True
ok 50 - Bool.roll(30) contains a False
*** glibc detected *** perl6​: double free or corruption (!prev)​: 0x0000000003397bd0 ***
======= Backtrace​: =========
/lib64/libc.so.6[0x3c6087c00e]
/home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/nqp_bigint_ops.so(+0xc8dd)[0x7f19f44c68dd]
/home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/nqp_ops.so(+0x26f12)[0x7f19f4938f12]
/home/ira/rakudo/rakudo/install/lib/libparrot.so.4.10.0(+0x897cd)[0x7f19fb49c7cd]
/home/ira/rakudo/rakudo/install/lib/libparrot.so.4.10.0(+0x89ae7)[0x7f19fb49cae7]
/home/ira/rakudo/rakudo/install/lib/libparrot.so.4.10.0(Parrot_gc_new_pmc_header+0x1b)[0x7f19fb497e7b]
/home/ira/rakudo/rakudo/install/lib/libparrot.so.4.10.0(+0xa87dd)[0x7f19fb4bb7dd]
/home/ira/rakudo/rakudo/install/lib/libparrot.so.4.10.0(Parrot_pmc_new+0x3c)[0x7f19fb4bba8c]
/home/ira/rakudo/rakudo/install/lib/libparrot.so.4.10.0(Parrot_pcc_reuse_continuation+0x6d)[0x7f19fb4a6e4d]
/home/ira/rakudo/rakudo/install/lib/libparrot.so.4.10.0(+0x60bff)[0x7f19fb473bff]
/home/ira/rakudo/rakudo/install/lib/libparrot.so.4.10.0(+0xa9cd5)[0x7f19fb4bccd5]
/home/ira/rakudo/rakudo/install/lib/libparrot.so.4.10.0(+0xa992d)[0x7f19fb4bc92d]
/home/ira/rakudo/rakudo/install/lib/libparrot.so.4.10.0(+0x9369e)[0x7f19fb4a669e]
/home/ira/rakudo/rakudo/install/lib/libparrot.so.4.10.0(Parrot_pcc_invoke_from_sig_object+0xde)[0x7f19fb4a20be]
/home/ira/rakudo/rakudo/install/lib/libparrot.so.4.10.0(Parrot_ext_call+0xcc)[0x7f19fb49680c]
/home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/nqp_ops.so(+0x23d78)[0x7f19f4935d78]
/home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/perl6_ops.so(+0x21e29)[0x7f19f46f8e29]
/home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/perl6_ops.so(+0x2223a)[0x7f19f46f923a]
/home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/perl6_group.so(+0x2545)[0x7f19f4b5f545]
/home/ira/rakudo/rakudo/install/lib/libparrot.so.4.10.0(+0xa9cd5)[0x7f19fb4bccd5]
/home/ira/rakudo/rakudo/install/lib/libparrot.so.4.10.0(+0xa992d)[0x7f19fb4bc92d]
/home/ira/rakudo/rakudo/install/lib/libparrot.so.4.10.0(+0x9369e)[0x7f19fb4a669e]
/home/ira/rakudo/rakudo/install/lib/libparrot.so.4.10.0(Parrot_pcc_invoke_from_sig_object+0xde)[0x7f19fb4a20be]
/home/ira/rakudo/rakudo/install/lib/libparrot.so.4.10.0(Parrot_ext_call+0xcc)[0x7f19fb49680c]
/home/ira/rakudo/rakudo/install/lib/libparrot.so.4.10.0(+0x15d6fd)[0x7f19fb5706fd]
/home/ira/rakudo/rakudo/install/lib/libparrot.so.4.10.0(Parrot_pcc_invoke_from_sig_object+0x8a)[0x7f19fb4a206a]
/home/ira/rakudo/rakudo/install/lib/libparrot.so.4.10.0(Parrot_ext_call+0xcc)[0x7f19fb49680c]
/home/ira/rakudo/rakudo/install/lib/libparrot.so.4.10.0(+0xadc3d)[0x7f19fb4c0c3d]
/home/ira/rakudo/rakudo/install/lib/libparrot.so.4.10.0(Parrot_cx_begin_execution+0x6a)[0x7f19fb4c0cca]
/home/ira/rakudo/rakudo/install/lib/libparrot.so.4.10.0(Parrot_pf_execute_bytecode_program+0xdb)[0x7f19fb4c887b]
/home/ira/rakudo/rakudo/install/lib/libparrot.so.4.10.0(Parrot_api_run_bytecode+0xf1)[0x7f19fb492711]
perl6(main+0x170)[0x4011b0]
/lib64/libc.so.6(__libc_start_main+0xf5)[0x3c60821735]
perl6[0x401261]
======= Memory map​: ========
00400000-0040e000 r-xp 00000000 08​:04 6030374 /home/ira/rakudo/rakudo/perl6
0060d000-0060e000 rw-p 0000d000 08​:04 6030374 /home/ira/rakudo/rakudo/perl6
024ad000-0a699000 rw-p 00000000 00​:00 0 [heap]
3aab800000-3aab802000 r-xp 00000000 08​:02 5008155 /usr/lib64/libutil-2.15.so
3aab802000-3aaba01000 ---p 00002000 08​:02 5008155 /usr/lib64/libutil-2.15.so
3aaba01000-3aaba02000 r--p 00001000 08​:02 5008155 /usr/lib64/libutil-2.15.so
3aaba02000-3aaba03000 rw-p 00002000 08​:02 5008155 /usr/lib64/libutil-2.15.so
3c31a00000-3c31a3c000 r-xp 00000000 08​:02 5007605 /usr/lib64/libreadline.so.6.2
3c31a3c000-3c31c3b000 ---p 0003c000 08​:02 5007605 /usr/lib64/libreadline.so.6.2
3c31c3b000-3c31c3d000 r--p 0003b000 08​:02 5007605 /usr/lib64/libreadline.so.6.2
3c31c3d000-3c31c43000 rw-p 0003d000 08​:02 5007605 /usr/lib64/libreadline.so.6.2
3c31c43000-3c31c45000 rw-p 00000000 00​:00 0
3c33400000-3c33425000 r-xp 00000000 08​:02 5007457 /usr/lib64/libtinfo.so.5.9
3c33425000-3c33624000 ---p 00025000 08​:02 5007457 /usr/lib64/libtinfo.so.5.9
3c33624000-3c33628000 r--p 00024000 08​:02 5007457 /usr/lib64/libtinfo.so.5.9
3c33628000-3c33629000 rw-p 00028000 08​:02 5007457 /usr/lib64/libtinfo.so.5.9
3c34800000-3c34807000 r-xp 00000000 08​:02 5007913 /usr/lib64/librt-2.15.so
3c34807000-3c34a06000 ---p 00007000 08​:02 5007913 /usr/lib64/librt-2.15.so
3c34a06000-3c34a07000 r--p 00006000 08​:02 5007913 /usr/lib64/librt-2.15.so
3c34a07000-3c34a08000 rw-p 00007000 08​:02 5007913 /usr/lib64/librt-2.15.so
3c60400000-3c60420000 r-xp 00000000 08​:02 4984833 /usr/lib64/ld-2.15.so
3c6061f000-3c60620000 r--p 0001f000 08​:02 4984833 /usr/lib64/ld-2.15.so
3c60620000-3c60621000 rw-p 00020000 08​:02 4984833 /usr/lib64/ld-2.15.so
3c60621000-3c60622000 rw-p 00000000 00​:00 0
3c60800000-3c609ac000 r-xp 00000000 08​:02 4984834 /usr/lib64/libc-2.15.so
3c609ac000-3c60bac000 ---p 001ac000 08​:02 4984834 /usr/lib64/libc-2.15.so
3c60bac000-3c60bb0000 r--p 001ac000 08​:02 4984834 /usr/lib64/libc-2.15.so
3c60bb0000-3c60bb2000 rw-p 001b0000 08​:02 4984834 /usr/lib64/libc-2.15.so
3c60bb2000-3c60bb7000 rw-p 00000000 00​:00 0
3c60c00000-3c60c03000 r-xp 00000000 08​:02 4990610 /usr/lib64/libdl-2.15.so
3c60c03000-3c60e02000 ---p 00003000 08​:02 4990610 /usr/lib64/libdl-2.15.so
3c60e02000-3c60e03000 r--p 00002000 08​:02 4990610 /usr/lib64/libdl-2.15.so
3c60e03000-3c60e04000 rw-p 00003000 08​:02 4990610 /usr/lib64/libdl-2.15.so
3c61000000-3c61016000 r-xp 00000000 08​:02 4980748 /usr/lib64/libpthread-2.15.so
3c61016000-3c61216000 ---p 00016000 08​:02 4980748 /usr/lib64/libpthread-2.15.so
3c61216000-3c61217000 r--p 00016000 08​:02 4980748 /usr/lib64/libpthread-2.15.so
3c61217000-3c61218000 rw-p 00017000 08​:02 4980748 /usr/lib64/libpthread-2.15.so
3c61218000-3c6121c000 rw-p 00000000 00​:00 0
3c61800000-3c618fa000 r-xp 00000000 08​:02 4992975 /usr/lib64/libm-2.15.so
3c618fa000-3c61af9000 ---p 000fa000 08​:02 4992975 /usr/lib64/libm-2.15.so
3c61af9000-3c61afa000 r--p 000f9000 08​:02 4992975 /usr/lib64/libm-2.15.so
3c61afa000-3c61afb000 rw-p 000fa000 08​:02 4992975 /usr/lib64/libm-2.15.so
3c62800000-3c62815000 r-xp 00000000 08​:02 4981556 /usr/lib64/libgcc_s-4.7.2-20120921.so.1
3c62815000-3c62a14000 ---p 00015000 08​:02 4981556 /usr/lib64/libgcc_s-4.7.2-20120921.so.1
3c62a14000-3c62a15000 rw-p 00014000 08​:02 4981556 /usr/lib64/libgcc_s-4.7.2-20120921.so.1
3c62c00000-3c62c16000 r-xp 00000000 08​:02 5007444 /usr/lib64/libresolv-2.15.so
3c62c16000-3c62e15000 ---p 00016000 08​:02 5007444 /usr/lib64/libresolv-2.15.so
3c62e15000-3c62e16000 r--p 00015000 08​:02 5007444 /usr/lib64/libresolv-2.15.so
3c62e16000-3c62e17000 rw-p 00016000 08​:02 5007444 /usr/lib64/libresolv-2.15.so
3c62e17000-3c62e19000 rw-p 00000000 00​:00 0
3c64400000-3c644e5000 r-xp 00000000 08​:02 5007465 /usr/lib64/libstdc++.so.6.0.17
3c644e5000-3c646e4000 ---p 000e5000 08​:02 5007465 /usr/lib64/libstdc++.so.6.0.17
3c646e4000-3c646ec000 r--p 000e4000 08​:02 5007465 /usr/lib64/libstdc++.so.6.0.17
3c646ec000-3c646ee000 rw-p 000ec000 08​:02 5007465 /usr/lib64/libstdc++.so.6.0.17
3c646ee000-3c64703000 rw-p 00000000 00​:00 0
3c71000000-3c71016000 r-xp 00000000 08​:02 4988400 /usr/lib64/libnsl-2.15.so
3c71016000-3c71215000 ---p 00016000 08​:02 4988400 /usr/lib64/libnsl-2.15.so
3c71215000-3c71216000 r--p 00015000 08​:02 4988400 /usr/lib64/libnsl-2.15.so
3c71216000-3c71217000 rw-p 00016000 08​:02 4988400 /usr/lib64/libnsl-2.15.so
3c71217000-3c71219000 rw-p 00000000 00​:00 0
3c74400000-3c74556000 r-xp 00000000 08​:02 4999628 /usr/lib64/libicuuc.so.48.1.1
3c74556000-3c74756000 ---p 00156000 08​:02 4999628 /usr/lib64/libicuuc.so.48.1.1
3c74756000-3c74766000 r--p 00156000 08​:02 4999628 /usr/lib64/libicuuc.so.48.1.1
3c74766000-3c74767000 rw-p 00166000 08​:02 4999628 /usr/lib64/libicuuc.so.48.1.1
3c74767000-3c7476b000 rw-p 00000000 00​:00 0
3c75c00000-3c76d6f000 r-xp 00000000 08​:02 5000354 /usr/lib64/libicudata.so.48.1.1
3c76d6f000-3c76f6e000 ---p 0116f000 08​:02 5000354 /usr/lib64/libicudata.so.48.1.1
3c76f6e000-3c76f6f000 r--p 0116e000 08​:02 5000354 /usr/lib64/libicudata.so.48.1.1
3c76f6f000-3c76f70000 rw-p 0116f000 08​:02 5000354 /usr/lib64/libicudata.so.48.1.1
3f74800000-3f74865000 r-xp 00000000 08​:02 4987304 /usr/lib64/libfreebl3.so
3f74865000-3f74a65000 ---p 00065000 08​:02 4987304 /usr/lib64/libfreebl3.so
3f74a65000-3f74a66000 rw-p 00065000 08​:02 4987304 /usr/lib64/libfreebl3.so
3f74a66000-3f74a6b000 rw-p 00000000 00​:00 0
3f75400000-3f75408000 r-xp 00000000 08​:02 4999398 /usr/lib64/libcrypt-2.15.so
3f75408000-3f75607000 ---p 00008000 08​:02 4999398 /usr/lib64/libcrypt-2.15.so
3f75607000-3f75608000 r--p 00007000 08​:02 4999398 /usr/lib64/libcrypt-2.15.so
3f75608000-3f75609000 rw-p 00008000 08​:02 4999398 /usr/lib64/libcrypt-2.15.so
3f75609000-3f75637000 rw-p 00000000 00​:00 0
7f19f027b000-7f19f0786000 rw-p 00000000 00​:00 0
7f19f0786000-7f19f0795000 r-xp 00000000 08​:04 6556682 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/nqp_dyncall_ops.so
7f19f0795000-7f19f0994000 ---p 0000f000 08​:04 6556682 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/nqp_dyncall_ops.so
7f19f0994000-7f19f0995000 r--p 0000e000 08​:04 6556682 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/nqp_dyncall_ops.so
7f19f0995000-7f19f0996000 rw-p 0000f000 08​:04 6556682 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/nqp_dyncall_ops.so
7f19f0996000-7f19f0999000 r-xp 00000000 08​:04 6556164 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/sys_ops.so
7f19f0999000-7f19f0b98000 ---p 00003000 08​:04 6556164 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/sys_ops.so
7f19f0b98000-7f19f0b99000 r--p 00002000 08​:04 6556164 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/sys_ops.so
7f19f0b99000-7f19f0b9a000 rw-p 00003000 08​:04 6556164 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/sys_ops.so
7f19f0b9a000-7f19f0b9e000 r-xp 00000000 08​:04 6556159 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/math_ops.so
7f19f0b9e000-7f19f0d9e000 ---p 00004000 08​:04 6556159 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/math_ops.so
7f19f0d9e000-7f19f0d9f000 r--p 00004000 08​:04 6556159 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/math_ops.so
7f19f0d9f000-7f19f0da1000 rw-p 00005000 08​:04 6556159 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/math_ops.so
7f19f0da1000-7f19f0daa000 r-xp 00000000 08​:04 6556153 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/bit_ops.so
7f19f0daa000-7f19f0fa9000 ---p 00009000 08​:04 6556153 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/bit_ops.so
7f19f0fa9000-7f19f0faa000 r--p 00008000 08​:04 6556153 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/bit_ops.so
7f19f0faa000-7f19f0fae000 rw-p 00009000 08​:04 6556153 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/bit_ops.so
7f19f0fae000-7f19f0fb1000 r-xp 00000000 08​:04 6556160 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/obscure_ops.so
7f19f0fb1000-7f19f11b0000 ---p 00003000 08​:04 6556160 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/obscure_ops.so
7f19f11b0000-7f19f11b1000 r--p 00002000 08​:04 6556160 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/obscure_ops.so
7f19f11b1000-7f19f11b3000 rw-p 00003000 08​:04 6556160 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/obscure_ops.so
7f19f11b3000-7f19f11b6000 r-xp 00000000 08​:04 6556156 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/file.so
7f19f11b6000-7f19f13b5000 ---p 00003000 08​:04 6556156 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/file.so
7f19f13b5000-7f19f13b6000 r--p 00002000 08​:04 6556156 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/file.so
7f19f13b6000-7f19f13b7000 rw-p 00003000 08​:04 6556156 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/file.so
7f19f13b7000-7f19f13b9000 r-xp 00000000 08​:04 6556161 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/os.so
7f19f13b9000-7f19f15b8000 ---p 00002000 08​:04 6556161 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/os.so
7f19f15b8000-7f19f15b9000 r--p 00001000 08​:04 6556161 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/os.so
7f19f15b9000-7f19f15ba000 rw-p 00002000 08​:04 6556161 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/os.so
7f19f15ba000-7f19f27ba000 rw-p 00000000 00​:00 0
7f19f27ba000-7f19f27c0000 r-xp 00000000 08​:04 6556165 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/trans_ops.so
7f19f27c0000-7f19f29bf000 ---p 00006000 08​:04 6556165 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/trans_ops.so
7f19f29bf000-7f19f29c0000 r--p 00005000 08​:04 6556165 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/trans_ops.so
7f19f29c0000-7f19f29c3000 rw-p 00006000 08​:04 6556165 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/trans_ops.so
7f19f29c3000-7f19f4290000 rw-p 00000000 00​:00 0
7f19f4290000-7f19f4296000 r-xp 00000000 08​:04 6556158 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/io_ops.so
7f19f4296000-7f19f4495000 ---p 00006000 08​:04 6556158 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/io_ops.so
7f19f4495000-7f19f4496000 r--p 00005000 08​:04 6556158 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/io_ops.so
7f19f4496000-7f19f4499000 rw-p 00006000 08​:04 6556158 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/io_ops.so
7f19f4499000-7f19f44ba000 rw-p 00000000 00​:00 0
7f19f44ba000-7f19f44d4000 r-xp 00000000 08​:04 6556681 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/nqp_bigint_ops.so
7f19f44d4000-7f19f46d3000 ---p 0001a000 08​:04 6556681 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/nqp_bigint_ops.so
7f19f46d3000-7f19f46d4000 r--p 00019000 08​:04 6556681 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/nqp_bigint_ops.so
7f19f46d4000-7f19f46d7000 rw-p 0001a000 08​:04 6556681 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/nqp_bigint_ops.so
7f19f46d7000-7f19f4705000 r-xp 00000000 08​:04 6556732 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/perl6_ops.so
7f19f4705000-7f19f4904000 ---p 0002e000 08​:04 6556732 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/perl6_ops.so
7f19f4904000-7f19f4905000 r--p 0002d000 08​:04 6556732 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/perl6_ops.so
7f19f4905000-7f19f4912000 rw-p 0002e000 08​:04 6556732 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/perl6_ops.so
7f19f4912000-7f19f4951000 r-xp 00000000 08​:04 6556680 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/nqp_ops.so
7f19f4951000-7f19f4b50000 ---p 0003f000 08​:04 6556680 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/nqp_ops.so
7f19f4b50000-7f19f4b51000 r--p 0003e000 08​:04 6556680 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/nqp_ops.so
7f19f4b51000-7f19f4b5d000 rw-p 0003f000 08​:04 6556680 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/nqp_ops.so
7f19f4b5d000-7f19f4b65000 r-xp 00000000 08​:04 6556731 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/perl6_group.so
7f19f4b65000-7f19f4d64000 ---p 00008000 08​:04 6556731 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/perl6_group.so
7f19f4d64000-7f19f4d65000 r--p 00007000 08​:04 6556731 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/perl6_group.so
7f19f4d65000-7f19f4d66000 rw-p 00008000 08​:04 6556731 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/perl6_group.so
7f19f4d66000-7f19f4d7c000 r-xp 00000000 08​:04 6556679 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/nqp_group.so
7f19f4d7c000-7f19f4f7b000 ---p 00016000 08​:04 6556679 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/nqp_group.so
7f19f4f7b000-7f19f4f7c000 r--p 00015000 08​:04 6556679 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/nqp_group.so
7f19f4f7c000-7f19f4f7d000 rw-p 00016000 08​:04 6556679 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/nqp_group.so
7f19f4f7d000-7f19fb3aa000 r--p 00000000 08​:02 5007419 /usr/lib/locale/locale-archive
7f19fb3aa000-7f19fb3f7000 rw-p 00000000 00​:00 0
7f19fb412000-7f19fb413000 rw-p 00000000 00​:00 0
7f19fb413000-7f19fb5fb000 r-xp 00000000 08​:04 6556145 /home/ira/rakudo/rakudo/install/lib/libparrot.so.4.10.0
7f19fb5fb000-7f19fb7fb000 ---p 001e8000 08​:04 6556145 /home/ira/rakudo/rakudo/install/lib/libparrot.so.4.10.0
7f19fb7fb000-7f19fb801000 r--p 001e8000 08​:04 6556145 /home/ira/rakudo/rakudo/install/lib/libparrot.so.4.10.0
7f19fb801000-7f19fb839000 rw-p 001ee000 08​:04 6556145 /home/ira/rakudo/rakudo/install/lib/libparrot.so.4.10.0
7f19fb839000-7f19fb83b000 rw-p 00000000 00​:00 0
7fffbc47e000-7fffbc49e000 rwxp 00000000 00​:00 0 [stack]
7fffbc49e000-7fffbc49f000 rw-p 00000000 00​:00 0
7fffbc5ff000-7fffbc600000 r-xp 00000000 00​:00 0 [vdso]
ffffffffff600000-ffffffffff601000 r-xp 00000000 00​:00 0 [vsyscall]
Aborted (core dumped)
$
$
$
$ exit

Script done on Mon 25 Feb 2013 08​:40​:49 PM HST

@p6rt
Copy link
Author

p6rt commented Mar 1, 2013

From @quester

Update​:

I found that the bug also can be triggered with just this loop, usually
after about 6-13 iterations​:

(0 but Bool​::True) and print qq{$_ } for 1..100;

Backtraces are attached for three recent versions of Rakudo, the current
version from git as of about 2013-03-01 0700 UTC
(2013.02.1-14-g357e603), Rakudo Star 2013-02, and Rakudo Star 2013-01.

It looks like this also failed with a sigabrt in the #perl6 evalbot, see
http://irclog.perlgeek.de/perl6/2013-03-01#i_6511442.

Best regards,
Ira

@p6rt
Copy link
Author

p6rt commented Mar 1, 2013

From @quester

This is from the current version of Rakudo in git (2013-03-01 0700 UTC)​:

[ira@​f17 rakudo]$ ./perl6 -v
This is perl6 version 2013.02.1-14-g357e603 built on parrot 4.10.0 revision RELEASE_4_10_0

[ira@​f17 rakudo]$ ./perl6 -e '(0 but Bool​::True) and print qq{$_ } for 1..100;'
1 2 3 4 5 6 7 8 9 10 *** glibc detected *** ./perl6​: free()​: invalid next size (fast)​: 0x0000000003592e40 ***
======= Backtrace​: =========
/lib64/libc.so.6[0x3c6087c00e]
/home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/nqp_ops.so(+0x26c9f)[0x7f62ae0abc9f]
/home/ira/rakudo/rakudo/install/lib/libparrot.so.4.10.0(+0x897cd)[0x7f62b4c107cd]
/home/ira/rakudo/rakudo/install/lib/libparrot.so.4.10.0(+0x89ae7)[0x7f62b4c10ae7]
/home/ira/rakudo/rakudo/install/lib/libparrot.so.4.10.0(Parrot_gc_new_pmc_header+0x1b)[0x7f62b4c0be7b]
/home/ira/rakudo/rakudo/install/lib/libparrot.so.4.10.0(+0xa87dd)[0x7f62b4c2f7dd]
/home/ira/rakudo/rakudo/install/lib/libparrot.so.4.10.0(Parrot_pmc_new_init+0x49)[0x7f62b4c2fc99]
/home/ira/rakudo/rakudo/install/lib/libparrot.so.4.10.0(+0xd3336)[0x7f62b4c5a336]
/home/ira/rakudo/rakudo/install/lib/libparrot.so.4.10.0(+0xa9cd5)[0x7f62b4c30cd5]
/home/ira/rakudo/rakudo/install/lib/libparrot.so.4.10.0(+0xa992d)[0x7f62b4c3092d]
/home/ira/rakudo/rakudo/install/lib/libparrot.so.4.10.0(+0x9369e)[0x7f62b4c1a69e]
/home/ira/rakudo/rakudo/install/lib/libparrot.so.4.10.0(Parrot_pcc_invoke_from_sig_object+0xde)[0x7f62b4c160be]
/home/ira/rakudo/rakudo/install/lib/libparrot.so.4.10.0(Parrot_ext_call+0xcc)[0x7f62b4c0a80c]
/home/ira/rakudo/rakudo/install/lib/libparrot.so.4.10.0(+0x15d6fd)[0x7f62b4ce46fd]
/home/ira/rakudo/rakudo/install/lib/libparrot.so.4.10.0(Parrot_pcc_invoke_from_sig_object+0x8a)[0x7f62b4c1606a]
/home/ira/rakudo/rakudo/install/lib/libparrot.so.4.10.0(Parrot_ext_call+0xcc)[0x7f62b4c0a80c]
/home/ira/rakudo/rakudo/install/lib/libparrot.so.4.10.0(+0xadc3d)[0x7f62b4c34c3d]
/home/ira/rakudo/rakudo/install/lib/libparrot.so.4.10.0(Parrot_cx_begin_execution+0x6a)[0x7f62b4c34cca]
/home/ira/rakudo/rakudo/install/lib/libparrot.so.4.10.0(Parrot_pf_execute_bytecode_program+0xdb)[0x7f62b4c3c87b]
/home/ira/rakudo/rakudo/install/lib/libparrot.so.4.10.0(Parrot_api_run_bytecode+0xf1)[0x7f62b4c06711]
./perl6(main+0x170)[0x4011b0]
/lib64/libc.so.6(__libc_start_main+0xf5)[0x3c60821735]
./perl6[0x401261]
======= Memory map​: ========
00400000-0040e000 r-xp 00000000 08​:04 7081115 /home/ira/rakudo/rakudo/perl6
0060d000-0060e000 rw-p 0000d000 08​:04 7081115 /home/ira/rakudo/rakudo/perl6
00f1d000-07d8e000 rw-p 00000000 00​:00 0 [heap]
3aab800000-3aab802000 r-xp 00000000 08​:02 5008155 /usr/lib64/libutil-2.15.so
3aab802000-3aaba01000 ---p 00002000 08​:02 5008155 /usr/lib64/libutil-2.15.so
3aaba01000-3aaba02000 r--p 00001000 08​:02 5008155 /usr/lib64/libutil-2.15.so
3aaba02000-3aaba03000 rw-p 00002000 08​:02 5008155 /usr/lib64/libutil-2.15.so
3c31a00000-3c31a3c000 r-xp 00000000 08​:02 5007605 /usr/lib64/libreadline.so.6.2
3c31a3c000-3c31c3b000 ---p 0003c000 08​:02 5007605 /usr/lib64/libreadline.so.6.2
3c31c3b000-3c31c3d000 r--p 0003b000 08​:02 5007605 /usr/lib64/libreadline.so.6.2
3c31c3d000-3c31c43000 rw-p 0003d000 08​:02 5007605 /usr/lib64/libreadline.so.6.2
3c31c43000-3c31c45000 rw-p 00000000 00​:00 0
3c33400000-3c33425000 r-xp 00000000 08​:02 5007457 /usr/lib64/libtinfo.so.5.9
3c33425000-3c33624000 ---p 00025000 08​:02 5007457 /usr/lib64/libtinfo.so.5.9
3c33624000-3c33628000 r--p 00024000 08​:02 5007457 /usr/lib64/libtinfo.so.5.9
3c33628000-3c33629000 rw-p 00028000 08​:02 5007457 /usr/lib64/libtinfo.so.5.9
3c34800000-3c34807000 r-xp 00000000 08​:02 5007913 /usr/lib64/librt-2.15.so
3c34807000-3c34a06000 ---p 00007000 08​:02 5007913 /usr/lib64/librt-2.15.so
3c34a06000-3c34a07000 r--p 00006000 08​:02 5007913 /usr/lib64/librt-2.15.so
3c34a07000-3c34a08000 rw-p 00007000 08​:02 5007913 /usr/lib64/librt-2.15.so
3c60400000-3c60420000 r-xp 00000000 08​:02 4984833 /usr/lib64/ld-2.15.so
3c6061f000-3c60620000 r--p 0001f000 08​:02 4984833 /usr/lib64/ld-2.15.so
3c60620000-3c60621000 rw-p 00020000 08​:02 4984833 /usr/lib64/ld-2.15.so
3c60621000-3c60622000 rw-p 00000000 00​:00 0
3c60800000-3c609ac000 r-xp 00000000 08​:02 4984834 /usr/lib64/libc-2.15.so
3c609ac000-3c60bac000 ---p 001ac000 08​:02 4984834 /usr/lib64/libc-2.15.so
3c60bac000-3c60bb0000 r--p 001ac000 08​:02 4984834 /usr/lib64/libc-2.15.so
3c60bb0000-3c60bb2000 rw-p 001b0000 08​:02 4984834 /usr/lib64/libc-2.15.so
3c60bb2000-3c60bb7000 rw-p 00000000 00​:00 0
3c60c00000-3c60c03000 r-xp 00000000 08​:02 4990610 /usr/lib64/libdl-2.15.so
3c60c03000-3c60e02000 ---p 00003000 08​:02 4990610 /usr/lib64/libdl-2.15.so
3c60e02000-3c60e03000 r--p 00002000 08​:02 4990610 /usr/lib64/libdl-2.15.so
3c60e03000-3c60e04000 rw-p 00003000 08​:02 4990610 /usr/lib64/libdl-2.15.so
3c61000000-3c61016000 r-xp 00000000 08​:02 4980748 /usr/lib64/libpthread-2.15.so
3c61016000-3c61216000 ---p 00016000 08​:02 4980748 /usr/lib64/libpthread-2.15.so
3c61216000-3c61217000 r--p 00016000 08​:02 4980748 /usr/lib64/libpthread-2.15.so
3c61217000-3c61218000 rw-p 00017000 08​:02 4980748 /usr/lib64/libpthread-2.15.so
3c61218000-3c6121c000 rw-p 00000000 00​:00 0
3c61800000-3c618fa000 r-xp 00000000 08​:02 4992975 /usr/lib64/libm-2.15.so
3c618fa000-3c61af9000 ---p 000fa000 08​:02 4992975 /usr/lib64/libm-2.15.so
3c61af9000-3c61afa000 r--p 000f9000 08​:02 4992975 /usr/lib64/libm-2.15.so
3c61afa000-3c61afb000 rw-p 000fa000 08​:02 4992975 /usr/lib64/libm-2.15.so
3c62800000-3c62815000 r-xp 00000000 08​:02 4981556 /usr/lib64/libgcc_s-4.7.2-20120921.so.1
3c62815000-3c62a14000 ---p 00015000 08​:02 4981556 /usr/lib64/libgcc_s-4.7.2-20120921.so.1
3c62a14000-3c62a15000 rw-p 00014000 08​:02 4981556 /usr/lib64/libgcc_s-4.7.2-20120921.so.1
3c62c00000-3c62c16000 r-xp 00000000 08​:02 5007444 /usr/lib64/libresolv-2.15.so
3c62c16000-3c62e15000 ---p 00016000 08​:02 5007444 /usr/lib64/libresolv-2.15.so
3c62e15000-3c62e16000 r--p 00015000 08​:02 5007444 /usr/lib64/libresolv-2.15.so
3c62e16000-3c62e17000 rw-p 00016000 08​:02 5007444 /usr/lib64/libresolv-2.15.so
3c62e17000-3c62e19000 rw-p 00000000 00​:00 0
3c64400000-3c644e5000 r-xp 00000000 08​:02 5007465 /usr/lib64/libstdc++.so.6.0.17
3c644e5000-3c646e4000 ---p 000e5000 08​:02 5007465 /usr/lib64/libstdc++.so.6.0.17
3c646e4000-3c646ec000 r--p 000e4000 08​:02 5007465 /usr/lib64/libstdc++.so.6.0.17
3c646ec000-3c646ee000 rw-p 000ec000 08​:02 5007465 /usr/lib64/libstdc++.so.6.0.17
3c646ee000-3c64703000 rw-p 00000000 00​:00 0
3c71000000-3c71016000 r-xp 00000000 08​:02 4988400 /usr/lib64/libnsl-2.15.so
3c71016000-3c71215000 ---p 00016000 08​:02 4988400 /usr/lib64/libnsl-2.15.so
3c71215000-3c71216000 r--p 00015000 08​:02 4988400 /usr/lib64/libnsl-2.15.so
3c71216000-3c71217000 rw-p 00016000 08​:02 4988400 /usr/lib64/libnsl-2.15.so
3c71217000-3c71219000 rw-p 00000000 00​:00 0
3c74400000-3c74556000 r-xp 00000000 08​:02 4999628 /usr/lib64/libicuuc.so.48.1.1
3c74556000-3c74756000 ---p 00156000 08​:02 4999628 /usr/lib64/libicuuc.so.48.1.1
3c74756000-3c74766000 r--p 00156000 08​:02 4999628 /usr/lib64/libicuuc.so.48.1.1
3c74766000-3c74767000 rw-p 00166000 08​:02 4999628 /usr/lib64/libicuuc.so.48.1.1
3c74767000-3c7476b000 rw-p 00000000 00​:00 0
3c75c00000-3c76d6f000 r-xp 00000000 08​:02 5000354 /usr/lib64/libicudata.so.48.1.1
3c76d6f000-3c76f6e000 ---p 0116f000 08​:02 5000354 /usr/lib64/libicudata.so.48.1.1
3c76f6e000-3c76f6f000 r--p 0116e000 08​:02 5000354 /usr/lib64/libicudata.so.48.1.1
3c76f6f000-3c76f70000 rw-p 0116f000 08​:02 5000354 /usr/lib64/libicudata.so.48.1.1
3f74800000-3f74865000 r-xp 00000000 08​:02 4987304 /usr/lib64/libfreebl3.so
3f74865000-3f74a65000 ---p 00065000 08​:02 4987304 /usr/lib64/libfreebl3.so
3f74a65000-3f74a66000 rw-p 00065000 08​:02 4987304 /usr/lib64/libfreebl3.so
3f74a66000-3f74a6b000 rw-p 00000000 00​:00 0
3f75400000-3f75408000 r-xp 00000000 08​:02 4999398 /usr/lib64/libcrypt-2.15.so
3f75408000-3f75607000 ---p 00008000 08​:02 4999398 /usr/lib64/libcrypt-2.15.so
3f75607000-3f75608000 r--p 00007000 08​:02 4999398 /usr/lib64/libcrypt-2.15.so
3f75608000-3f75609000 rw-p 00008000 08​:02 4999398 /usr/lib64/libcrypt-2.15.so
3f75609000-3f75637000 rw-p 00000000 00​:00 0
7f62a9a94000-7f62a9f9f000 rw-p 00000000 00​:00 0
7f62a9f9f000-7f62a9fae000 r-xp 00000000 08​:04 7212307 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/nqp_dyncall_ops.so
7f62a9fae000-7f62aa1ad000 ---p 0000f000 08​:04 7212307 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/nqp_dyncall_ops.so
7f62aa1ad000-7f62aa1ae000 r--p 0000e000 08​:04 7212307 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/nqp_dyncall_ops.so
7f62aa1ae000-7f62aa1af000 rw-p 0000f000 08​:04 7212307 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/nqp_dyncall_ops.so
7f62aa1af000-7f62aa1b2000 r-xp 00000000 08​:04 7211771 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/sys_ops.so
7f62aa1b2000-7f62aa3b1000 ---p 00003000 08​:04 7211771 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/sys_ops.so
7f62aa3b1000-7f62aa3b2000 r--p 00002000 08​:04 7211771 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/sys_ops.so
7f62aa3b2000-7f62aa3b3000 rw-p 00003000 08​:04 7211771 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/sys_ops.so
7f62aa3b3000-7f62aa3b7000 r-xp 00000000 08​:04 7211766 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/math_ops.so
7f62aa3b7000-7f62aa5b7000 ---p 00004000 08​:04 7211766 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/math_ops.so
7f62aa5b7000-7f62aa5b8000 r--p 00004000 08​:04 7211766 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/math_ops.so
7f62aa5b8000-7f62aa5ba000 rw-p 00005000 08​:04 7211766 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/math_ops.so
7f62aa5ba000-7f62aa5c3000 r-xp 00000000 08​:04 7211760 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/bit_ops.so
7f62aa5c3000-7f62aa7c2000 ---p 00009000 08​:04 7211760 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/bit_ops.so
7f62aa7c2000-7f62aa7c3000 r--p 00008000 08​:04 7211760 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/bit_ops.so
7f62aa7c3000-7f62aa7c7000 rw-p 00009000 08​:04 7211760 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/bit_ops.so
7f62aa7c7000-7f62aa7ca000 r-xp 00000000 08​:04 7211767 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/obscure_ops.so
7f62aa7ca000-7f62aa9c9000 ---p 00003000 08​:04 7211767 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/obscure_ops.so
7f62aa9c9000-7f62aa9ca000 r--p 00002000 08​:04 7211767 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/obscure_ops.so
7f62aa9ca000-7f62aa9cc000 rw-p 00003000 08​:04 7211767 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/obscure_ops.so
7f62aa9cc000-7f62aa9cf000 r-xp 00000000 08​:04 7211763 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/file.so
7f62aa9cf000-7f62aabce000 ---p 00003000 08​:04 7211763 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/file.so
7f62aabce000-7f62aabcf000 r--p 00002000 08​:04 7211763 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/file.so
7f62aabcf000-7f62aabd0000 rw-p 00003000 08​:04 7211763 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/file.so
7f62aabd0000-7f62aabd2000 r-xp 00000000 08​:04 7211768 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/os.so
7f62aabd2000-7f62aadd1000 ---p 00002000 08​:04 7211768 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/os.so
7f62aadd1000-7f62aadd2000 r--p 00001000 08​:04 7211768 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/os.so
7f62aadd2000-7f62aadd3000 rw-p 00002000 08​:04 7211768 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/os.so
7f62aadd3000-7f62abfab000 rw-p 00000000 00​:00 0
7f62abfab000-7f62abfb1000 r-xp 00000000 08​:04 7211772 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/trans_ops.so
7f62abfb1000-7f62ac1b0000 ---p 00006000 08​:04 7211772 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/trans_ops.so
7f62ac1b0000-7f62ac1b1000 r--p 00005000 08​:04 7211772 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/trans_ops.so
7f62ac1b1000-7f62ac1b4000 rw-p 00006000 08​:04 7211772 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/trans_ops.so
7f62ac1b4000-7f62ada03000 rw-p 00000000 00​:00 0
7f62ada03000-7f62ada09000 r-xp 00000000 08​:04 7211765 /home/ira/rakudo/rakudo/install/lib/parrotAborted (core dumped)


This is from Rakudo Star 2013-02​:

[ira@​f17 rakudo-star-2013.02]$ ./perl6 -v
This is perl6 version 2013.02.1 built on parrot 4.10.0 revision 0

[ira@​f17 rakudo-star-2013.02]$ ./perl6 -e '(0 but Bool​::True) and print qq{$_ } for 1..100;'
1 2 3 4 5 6 7 8 9 10 *** glibc detected *** ./perl6​: free()​: invalid pointer​: 0x000000000441e388 ***
======= Backtrace​: =========
/lib64/libc.so.6[0x3c6087c00e]
/home/ira/rakudo/rakudo-star-2013.02/install/lib/parrot/4.10.0/dynext/nqp_bigint_ops.so(+0xc8dd)[0x7f1289bb88dd]
/home/ira/rakudo/rakudo-star-2013.02/install/lib/parrot/4.10.0/dynext/nqp_ops.so(+0x26e72)[0x7f128a02ae72]
/home/ira/rakudo/rakudo-star-2013.02/install/lib/libparrot.so.4.10.0(+0x897cd)[0x7f1290b8e7cd]
/home/ira/rakudo/rakudo-star-2013.02/install/lib/libparrot.so.4.10.0(+0x89ae7)[0x7f1290b8eae7]
/home/ira/rakudo/rakudo-star-2013.02/install/lib/libparrot.so.4.10.0(Parrot_gc_new_pmc_header+0x1b)[0x7f1290b89e7b]
/home/ira/rakudo/rakudo-star-2013.02/install/lib/libparrot.so.4.10.0(+0xa87dd)[0x7f1290bad7dd]
/home/ira/rakudo/rakudo-star-2013.02/install/lib/libparrot.so.4.10.0(Parrot_pmc_new+0x3c)[0x7f1290bada8c]
/home/ira/rakudo/rakudo-star-2013.02/install/lib/libparrot.so.4.10.0(+0x12241e)[0x7f1290c2741e]
/home/ira/rakudo/rakudo-star-2013.02/install/lib/libparrot.so.4.10.0(+0x5faa7)[0x7f1290b64aa7]
/home/ira/rakudo/rakudo-star-2013.02/install/lib/libparrot.so.4.10.0(+0xa9cd5)[0x7f1290baecd5]
/home/ira/rakudo/rakudo-star-2013.02/install/lib/libparrot.so.4.10.0(+0xa992d)[0x7f1290bae92d]
/home/ira/rakudo/rakudo-star-2013.02/install/lib/libparrot.so.4.10.0(+0x9369e)[0x7f1290b9869e]
/home/ira/rakudo/rakudo-star-2013.02/install/lib/libparrot.so.4.10.0(Parrot_pcc_invoke_from_sig_object+0xde)[0x7f1290b940be]
/home/ira/rakudo/rakudo-star-2013.02/install/lib/libparrot.so.4.10.0(Parrot_ext_call+0xcc)[0x7f1290b8880c]
/home/ira/rakudo/rakudo-star-2013.02/install/lib/libparrot.so.4.10.0(+0x15d6fd)[0x7f1290c626fd]
/home/ira/rakudo/rakudo-star-2013.02/install/lib/libparrot.so.4.10.0(Parrot_pcc_invoke_from_sig_object+0x8a)[0x7f1290b9406a]
/home/ira/rakudo/rakudo-star-2013.02/install/lib/libparrot.so.4.10.0(Parrot_ext_call+0xcc)[0x7f1290b8880c]
/home/ira/rakudo/rakudo-star-2013.02/install/lib/libparrot.so.4.10.0(+0xadc3d)[0x7f1290bb2c3d]
/home/ira/rakudo/rakudo-star-2013.02/install/lib/libparrot.so.4.10.0(Parrot_cx_begin_execution+0x6a)[0x7f1290bb2cca]
/home/ira/rakudo/rakudo-star-2013.02/install/lib/libparrot.so.4.10.0(Parrot_pf_execute_bytecode_program+0xdb)[0x7f1290bba87b]
/home/ira/rakudo/rakudo-star-2013.02/install/lib/libparrot.so.4.10.0(Parrot_api_run_bytecode+0xf1)[0x7f1290b84711]
./perl6(main+0x170)[0x4011b0]
/lib64/libc.so.6(__libc_start_main+0xf5)[0x3c60821735]
./perl6[0x401261]
======= Memory map​: ========
00400000-0040e000 r-xp 00000000 08​:04 6819182 /home/ira/rakudo/rakudo-star-2013.02/perl6
0060e000-0060f000 rw-p 0000e000 08​:04 6819182 /home/ira/rakudo/rakudo-star-2013.02/perl6
011a9000-08039000 rw-p 00000000 00​:00 0 [heap]
3aab800000-3aab802000 r-xp 00000000 08​:02 5008155 /usr/lib64/libutil-2.15.so
3aab802000-3aaba01000 ---p 00002000 08​:02 5008155 /usr/lib64/libutil-2.15.so
3aaba01000-3aaba02000 r--p 00001000 08​:02 5008155 /usr/lib64/libutil-2.15.so
3aaba02000-3aaba03000 rw-p 00002000 08​:02 5008155 /usr/lib64/libutil-2.15.so
3c31a00000-3c31a3c000 r-xp 00000000 08​:02 5007605 /usr/lib64/libreadline.so.6.2
3c31a3c000-3c31c3b000 ---p 0003c000 08​:02 5007605 /usr/lib64/libreadline.so.6.2
3c31c3b000-3c31c3d000 r--p 0003b000 08​:02 5007605 /usr/lib64/libreadline.so.6.2
3c31c3d000-3c31c43000 rw-p 0003d000 08​:02 5007605 /usr/lib64/libreadline.so.6.2
3c31c43000-3c31c45000 rw-p 00000000 00​:00 0
3c33400000-3c33425000 r-xp 00000000 08​:02 5007457 /usr/lib64/libtinfo.so.5.9
3c33425000-3c33624000 ---p 00025000 08​:02 5007457 /usr/lib64/libtinfo.so.5.9
3c33624000-3c33628000 r--p 00024000 08​:02 5007457 /usr/lib64/libtinfo.so.5.9
3c33628000-3c33629000 rw-p 00028000 08​:02 5007457 /usr/lib64/libtinfo.so.5.9
3c34800000-3c34807000 r-xp 00000000 08​:02 5007913 /usr/lib64/librt-2.15.so
3c34807000-3c34a06000 ---p 00007000 08​:02 5007913 /usr/lib64/librt-2.15.so
3c34a06000-3c34a07000 r--p 00006000 08​:02 5007913 /usr/lib64/librt-2.15.so
3c34a07000-3c34a08000 rw-p 00007000 08​:02 5007913 /usr/lib64/librt-2.15.so
3c60400000-3c60420000 r-xp 00000000 08​:02 4984833 /usr/lib64/ld-2.15.so
3c6061f000-3c60620000 r--p 0001f000 08​:02 4984833 /usr/lib64/ld-2.15.so
3c60620000-3c60621000 rw-p 00020000 08​:02 4984833 /usr/lib64/ld-2.15.so
3c60621000-3c60622000 rw-p 00000000 00​:00 0
3c60800000-3c609ac000 r-xp 00000000 08​:02 4984834 /usr/lib64/libc-2.15.so
3c609ac000-3c60bac000 ---p 001ac000 08​:02 4984834 /usr/lib64/libc-2.15.so
3c60bac000-3c60bb0000 r--p 001ac000 08​:02 4984834 /usr/lib64/libc-2.15.so
3c60bb0000-3c60bb2000 rw-p 001b0000 08​:02 4984834 /usr/lib64/libc-2.15.so
3c60bb2000-3c60bb7000 rw-p 00000000 00​:00 0
3c60c00000-3c60c03000 r-xp 00000000 08​:02 4990610 /usr/lib64/libdl-2.15.so
3c60c03000-3c60e02000 ---p 00003000 08​:02 4990610 /usr/lib64/libdl-2.15.so
3c60e02000-3c60e03000 r--p 00002000 08​:02 4990610 /usr/lib64/libdl-2.15.so
3c60e03000-3c60e04000 rw-p 00003000 08​:02 4990610 /usr/lib64/libdl-2.15.so
3c61000000-3c61016000 r-xp 00000000 08​:02 4980748 /usr/lib64/libpthread-2.15.so
3c61016000-3c61216000 ---p 00016000 08​:02 4980748 /usr/lib64/libpthread-2.15.so
3c61216000-3c61217000 r--p 00016000 08​:02 4980748 /usr/lib64/libpthread-2.15.so
3c61217000-3c61218000 rw-p 00017000 08​:02 4980748 /usr/lib64/libpthread-2.15.so
3c61218000-3c6121c000 rw-p 00000000 00​:00 0
3c61800000-3c618fa000 r-xp 00000000 08​:02 4992975 /usr/lib64/libm-2.15.so
3c618fa000-3c61af9000 ---p 000fa000 08​:02 4992975 /usr/lib64/libm-2.15.so
3c61af9000-3c61afa000 r--p 000f9000 08​:02 4992975 /usr/lib64/libm-2.15.so
3c61afa000-3c61afb000 rw-p 000fa000 08​:02 4992975 /usr/lib64/libm-2.15.so
3c62800000-3c62815000 r-xp 00000000 08​:02 4981556 /usr/lib64/libgcc_s-4.7.2-20120921.so.1
3c62815000-3c62a14000 ---p 00015000 08​:02 4981556 /usr/lib64/libgcc_s-4.7.2-20120921.so.1
3c62a14000-3c62a15000 rw-p 00014000 08​:02 4981556 /usr/lib64/libgcc_s-4.7.2-20120921.so.1
3c62c00000-3c62c16000 r-xp 00000000 08​:02 5007444 /usr/lib64/libresolv-2.15.so
3c62c16000-3c62e15000 ---p 00016000 08​:02 5007444 /usr/lib64/libresolv-2.15.so
3c62e15000-3c62e16000 r--p 00015000 08​:02 5007444 /usr/lib64/libresolv-2.15.so
3c62e16000-3c62e17000 rw-p 00016000 08​:02 5007444 /usr/lib64/libresolv-2.15.so
3c62e17000-3c62e19000 rw-p 00000000 00​:00 0
3c64400000-3c644e5000 r-xp 00000000 08​:02 5007465 /usr/lib64/libstdc++.so.6.0.17
3c644e5000-3c646e4000 ---p 000e5000 08​:02 5007465 /usr/lib64/libstdc++.so.6.0.17
3c646e4000-3c646ec000 r--p 000e4000 08​:02 5007465 /usr/lib64/libstdc++.so.6.0.17
3c646ec000-3c646ee000 rw-p 000ec000 08​:02 5007465 /usr/lib64/libstdc++.so.6.0.17
3c646ee000-3c64703000 rw-p 00000000 00​:00 0
3c71000000-3c71016000 r-xp 00000000 08​:02 4988400 /usr/lib64/libnsl-2.15.so
3c71016000-3c71215000 ---p 00016000 08​:02 4988400 /usr/lib64/libnsl-2.15.so
3c71215000-3c71216000 r--p 00015000 08​:02 4988400 /usr/lib64/libnsl-2.15.so
3c71216000-3c71217000 rw-p 00016000 08​:02 4988400 /usr/lib64/libnsl-2.15.so
3c71217000-3c71219000 rw-p 00000000 00​:00 0
3c74400000-3c74556000 r-xp 00000000 08​:02 4999628 /usr/lib64/libicuuc.so.48.1.1
3c74556000-3c74756000 ---p 00156000 08​:02 4999628 /usr/lib64/libicuuc.so.48.1.1
3c74756000-3c74766000 r--p 00156000 08​:02 4999628 /usr/lib64/libicuuc.so.48.1.1
3c74766000-3c74767000 rw-p 00166000 08​:02 4999628 /usr/lib64/libicuuc.so.48.1.1
3c74767000-3c7476b000 rw-p 00000000 00​:00 0
3c75c00000-3c76d6f000 r-xp 00000000 08​:02 5000354 /usr/lib64/libicudata.so.48.1.1
3c76d6f000-3c76f6e000 ---p 0116f000 08​:02 5000354 /usr/lib64/libicudata.so.48.1.1
3c76f6e000-3c76f6f000 r--p 0116e000 08​:02 5000354 /usr/lib64/libicudata.so.48.1.1
3c76f6f000-3c76f70000 rw-p 0116f000 08​:02 5000354 /usr/lib64/libicudata.so.48.1.1
3f74800000-3f74865000 r-xp 00000000 08​:02 4987304 /usr/lib64/libfreebl3.so
3f74865000-3f74a65000 ---p 00065000 08​:02 4987304 /usr/lib64/libfreebl3.so
3f74a65000-3f74a66000 rw-p 00065000 08​:02 4987304 /usr/lib64/libfreebl3.so
3f74a66000-3f74a6b000 rw-p 00000000 00​:00 0
3f75400000-3f75408000 r-xp 00000000 08​:02 4999398 /usr/lib64/libcrypt-2.15.so
3f75408000-3f75607000 ---p 00008000 08​:02 4999398 /usr/lib64/libcrypt-2.15.so
3f75607000-3f75608000 r--p 00007000 08​:02 4999398 /usr/lib64/libcrypt-2.15.so
3f75608000-3f75609000 rw-p 00008000 08​:02 4999398 /usr/lib64/libcrypt-2.15.so
3f75609000-3f75637000 rw-p 00000000 00​:00 0
7f1285785000-7f1285c90000 rw-p 00000000 00​:00 0
7f1285c90000-7f1285c9f000 r-xp 00000000 08​:04 6949718 /home/ira/rakudo/rakudo-star-2013.02/install/lib/parrot/4.10.0/dynext/nqp_dyncall_ops.so
7f1285c9f000-7f1285e9e000 ---p 0000f000 08​:04 6949718 /home/ira/rakudo/rakudo-star-2013.02/install/lib/parrot/4.10.0/dynext/nqp_dyncall_ops.so
7f1285e9e000-7f1285e9f000 r--p 0000e000 08​:04 6949718 /home/ira/rakudo/rakudo-star-2013.02/install/lib/parrot/4.10.0/dynext/nqp_dyncall_ops.so
7f1285e9f000-7f1285ea0000 rw-p 0000f000 08​:04 6949718 /home/ira/rakudo/rakudo-star-2013.02/install/lib/parrot/4.10.0/dynext/nqp_dyncall_ops.so
7f1285ea0000-7f1285ea3000 r-xp 00000000 08​:04 6949173 /home/ira/rakudo/rakudo-star-2013.02/install/lib/parrot/4.10.0/dynext/sys_ops.so
7f1285ea3000-7f12860a2000 ---p 00003000 08​:04 6949173 /home/ira/rakudo/rakudo-star-2013.02/install/lib/parrot/4.10.0/dynext/sys_ops.so
7f12860a2000-7f12860a3000 r--p 00002000 08​:04 6949173 /home/ira/rakudo/rakudo-star-2013.02/install/lib/parrot/4.10.0/dynext/sys_ops.so
7f12860a3000-7f12860a4000 rw-p 00003000 08​:04 6949173 /home/ira/rakudo/rakudo-star-2013.02/install/lib/parrot/4.10.0/dynext/sys_ops.so
7f12860a4000-7f12860a8000 r-xp 00000000 08​:04 6949168 /home/ira/rakudo/rakudo-star-2013.02/install/lib/parrot/4.10.0/dynext/math_ops.so
7f12860a8000-7f12862a8000 ---p 00004000 08​:04 6949168 /home/ira/rakudo/rakudo-star-2013.02/install/lib/parrot/4.10.0/dynext/math_ops.so
7f12862a8000-7f12862a9000 r--p 00004000 08​:04 6949168 /home/ira/rakudo/rakudo-star-2013.02/install/lib/parrot/4.10.0/dynext/math_ops.so
7f12862a9000-7f12862ab000 rw-p 00005000 08​:04 6949168 /home/ira/rakudo/rakudo-star-2013.02/install/lib/parrot/4.10.0/dynext/math_ops.so
7f12862ab000-7f12862b4000 r-xp 00000000 08​:04 6949162 /home/ira/rakudo/rakudo-star-2013.02/install/lib/parrot/4.10.0/dynext/bit_ops.so
7f12862b4000-7f12864b3000 ---p 00009000 08​:04 6949162 /home/ira/rakudo/rakudo-star-2013.02/install/lib/parrot/4.10.0/dynext/bit_ops.so
7f12864b3000-7f12864b4000 r--p 00008000 08​:04 6949162 /home/ira/rakudo/rakudo-star-2013.02/install/lib/parrot/4.10.0/dynext/bit_ops.so
7f12864b4000-7f12864b8000 rw-p 00009000 08​:04 6949162 /home/ira/rakudo/rakudo-star-2013.02/install/lib/parrot/4.10.0/dynext/bit_ops.so
7f12864b8000-7f12864bb000 r-xp 00000000 08​:04 6949169 /home/ira/rakudo/rakudo-star-2013.02/install/lib/parrot/4.10.0/dynext/obscure_ops.so
7f12864bb000-7f12866ba000 ---p 00003000 08​:04 6949169 /home/ira/rakudo/rakudo-star-2013.02/install/lib/parrot/4.10.0/dynext/obscure_ops.so
7f12866ba000-7f12866bb000 r--p 00002000 08​:04 6949169 /home/ira/rakudo/rakudo-star-2013.02/install/lib/parrot/4.10.0/dynext/obscure_ops.so
7f12866bb000-7f12866bd000 rw-p 00003000 08​:04 6949169 /home/ira/rakudo/rakudo-star-2013.02/install/lib/parrot/4.10.0/dynext/obscure_ops.so
7f12866bd000-7f12866c0000 r-xp 00000000 08​:04 6949165 /home/ira/rakudo/rakudo-star-2013.02/install/lib/parrot/4.10.0/dynext/file.so
7f12866c0000-7f12868bf000 ---p 00003000 08​:04 6949165 /home/ira/rakudo/rakudo-star-2013.02/install/lib/parrot/4.10.0/dynext/file.so
7f12868bf000-7f12868c0000 r--p 00002000 08​:04 6949165 /home/ira/rakudo/rakudo-star-2013.02/install/lib/parrot/4.10.0/dynext/file.so
7f12868c0000-7f12868c1000 rw-p 00003000 08​:04 6949165 /home/ira/rakudo/rakudo-star-2013.02/install/lib/parrot/4.10.0/dynext/file.so
7f12868c1000-7f12868c3000 r-xp 00000000 08​:04 6949170 /home/ira/rakudo/rakudo-star-2013.02/install/lib/parrot/4.10.0/dynext/os.so
7f12868c3000-7f1286ac2000 ---p 00002000 08​:04 6949170 /home/ira/rakudo/rakudo-star-2013.02/install/lib/parrot/4.10.0/dynext/os.so
7f1286ac2000-7f1286ac3000 r--p 00001000 08​:04 6949170 /home/ira/rakudo/rakudo-star-2013.02/install/lib/parrot/4.10.0/dynext/os.so
7f1286ac3000-7f1286ac4000 rw-p 00002000 08​:04 6949170 /home/ira/rakudo/rakudo-star-2013.02/install/lib/parrot/4.10.0/dynext/os.so
7f1286ac4000-7f1287d4e000 rw-p 00000000 00​:00 0
7f1287d4e000-7f1287d54000 r-xp 00000000 08​:04 6949174 /home/ira/rakudo/rakudo-star-2013.02/install/lib/parrot/4.10.0/dynext/trans_ops.so
7f1287d54000-7f1287f53000 ---p 00006000 08​:04 6949174 /home/ira/rakudo/rakudo-star-2013.02/install/lib/parrot/4.10.0/dynext/trans_ops.so
7f1287f53000-7f1287f54000 r--p 00005000 08​:04 6949174 /home/ira/rakudo/rakudo-star-2013.02/install/lib/parrot/4.10.0/dynext/trans_ops.so
7f1287f54000-7f1287f57000 rw-p 00006000 08​:04 6949174 /home/ira/rakudo/rakudo-star-2013.02/install/lib/parrot/4.10.0/dynext/trans_ops.so
7f1287f57000-7f1289982000 rw-p 00000000 00​:00 0
7f1289982000-7f1289988000 r-xp 00000000 08​:04 6949167 /home/ira/rakudo/rakudo-star-2013.02/install/lib/parrot/4.10.0/dynext/io_ops.so
7f1289988000-7f1289b87000 ---p 00006000 08​:04 6949167 /home/ira/rakudo/rakudo-star-2013.02/install/lib/parrot/4.10.0/dynext/io_ops.so
7f1289b87000-7f1289b88000 r--p 00005000 08​:04 6949167 /home/ira/rakudo/rakudo-star-2013.02/install/lib/parrot/4.10.0/dynext/io_ops.so
7f1289b88000-7f1289b8b000 rw-p 00006000 08​:04 6949167 /home/ira/rakudo/rakudo-star-2013.02/install/lib/parrot/4.10.0/dynext/io_ops.so
7f1289b8b000-7f1289bac000 rw-p 00000000 00​:00 0
7f1289bac000-7f1289bc6000 r-xp 00000000 08​:04 6949717 /home/ira/rakudo/rakudo-star-2013.02/install/lib/parrot/4.10.0/dynext/nqp_bigint_ops.soAborted (core dumped)


This is from Rakudo Star 2013-01​:

[ira@​f17 rakudo-star-2013.01]$ ./perl6 -v
This is perl6 version 2013.01 built on parrot 4.10.0 revision 0

[ira@​f17 rakudo-star-2013.01]$ ./perl6 -e '(0 but Bool​::True) and print qq{$_ } for 1..100;'
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 *** glibc detected *** ./perl6​: free()​: invalid next size (fast)​: 0x00000000011ec520 ***
======= Backtrace​: =========
/lib64/libc.so.6[0x3c6087c00e]
/home/ira/rakudo/rakudo-star-2013.01/install/lib/parrot/4.10.0/dynext/nqp_ops.so(+0x23bf1)[0x7fa9ce12ebf1]
/home/ira/rakudo/rakudo-star-2013.01/install/lib/libparrot.so.4.10.0(+0x897cd)[0x7fa9d4c907cd]
/home/ira/rakudo/rakudo-star-2013.01/install/lib/libparrot.so.4.10.0(+0x89ae7)[0x7fa9d4c90ae7]
/home/ira/rakudo/rakudo-star-2013.01/install/lib/libparrot.so.4.10.0(Parrot_gc_new_pmc_header+0x1b)[0x7fa9d4c8be7b]
/home/ira/rakudo/rakudo-star-2013.01/install/lib/libparrot.so.4.10.0(+0xa87dd)[0x7fa9d4caf7dd]
/home/ira/rakudo/rakudo-star-2013.01/install/lib/libparrot.so.4.10.0(Parrot_pmc_new+0x3c)[0x7fa9d4cafa8c]
/home/ira/rakudo/rakudo-star-2013.01/install/lib/libparrot.so.4.10.0(Parrot_pcc_reuse_continuation+0x6d)[0x7fa9d4c9ae4d]
/home/ira/rakudo/rakudo-star-2013.01/install/lib/libparrot.so.4.10.0(+0x60bff)[0x7fa9d4c67bff]
/home/ira/rakudo/rakudo-star-2013.01/install/lib/libparrot.so.4.10.0(+0xa9cd5)[0x7fa9d4cb0cd5]
/home/ira/rakudo/rakudo-star-2013.01/install/lib/libparrot.so.4.10.0(+0xa992d)[0x7fa9d4cb092d]
/home/ira/rakudo/rakudo-star-2013.01/install/lib/libparrot.so.4.10.0(+0x9369e)[0x7fa9d4c9a69e]
/home/ira/rakudo/rakudo-star-2013.01/install/lib/libparrot.so.4.10.0(Parrot_pcc_invoke_from_sig_object+0xde)[0x7fa9d4c960be]
/home/ira/rakudo/rakudo-star-2013.01/install/lib/libparrot.so.4.10.0(Parrot_ext_call+0xcc)[0x7fa9d4c8a80c]
/home/ira/rakudo/rakudo-star-2013.01/install/lib/libparrot.so.4.10.0(+0x15d6fd)[0x7fa9d4d646fd]
/home/ira/rakudo/rakudo-star-2013.01/install/lib/libparrot.so.4.10.0(Parrot_pcc_invoke_from_sig_object+0x8a)[0x7fa9d4c9606a]
/home/ira/rakudo/rakudo-star-2013.01/install/lib/libparrot.so.4.10.0(Parrot_ext_call+0xcc)[0x7fa9d4c8a80c]
/home/ira/rakudo/rakudo-star-2013.01/install/lib/libparrot.so.4.10.0(+0xadc3d)[0x7fa9d4cb4c3d]
/home/ira/rakudo/rakudo-star-2013.01/install/lib/libparrot.so.4.10.0(Parrot_cx_begin_execution+0x6a)[0x7fa9d4cb4cca]
/home/ira/rakudo/rakudo-star-2013.01/install/lib/libparrot.so.4.10.0(Parrot_pf_execute_bytecode_program+0xdb)[0x7fa9d4cbc87b]
/home/ira/rakudo/rakudo-star-2013.01/install/lib/libparrot.so.4.10.0(Parrot_api_run_bytecode+0xf1)[0x7fa9d4c86711]
./perl6(main+0x170)[0x4011b0]
/lib64/libc.so.6(__libc_start_main+0xf5)[0x3c60821735]
./perl6[0x401261]
======= Memory map​: ========
00400000-0040e000 r-xp 00000000 08​:04 6294233 /home/ira/rakudo/rakudo-star-2013.01/perl6
0060d000-0060e000 rw-p 0000d000 08​:04 6294233 /home/ira/rakudo/rakudo-star-2013.01/perl6
00eda000-079d5000 rw-p 00000000 00​:00 0 [heap]
3aab800000-3aab802000 r-xp 00000000 08​:02 5008155 /usr/lib64/libutil-2.15.so
3aab802000-3aaba01000 ---p 00002000 08​:02 5008155 /usr/lib64/libutil-2.15.so
3aaba01000-3aaba02000 r--p 00001000 08​:02 5008155 /usr/lib64/libutil-2.15.so
3aaba02000-3aaba03000 rw-p 00002000 08​:02 5008155 /usr/lib64/libutil-2.15.so
3c31a00000-3c31a3c000 r-xp 00000000 08​:02 5007605 /usr/lib64/libreadline.so.6.2
3c31a3c000-3c31c3b000 ---p 0003c000 08​:02 5007605 /usr/lib64/libreadline.so.6.2
3c31c3b000-3c31c3d000 r--p 0003b000 08​:02 5007605 /usr/lib64/libreadline.so.6.2
3c31c3d000-3c31c43000 rw-p 0003d000 08​:02 5007605 /usr/lib64/libreadline.so.6.2
3c31c43000-3c31c45000 rw-p 00000000 00​:00 0
3c33400000-3c33425000 r-xp 00000000 08​:02 5007457 /usr/lib64/libtinfo.so.5.9
3c33425000-3c33624000 ---p 00025000 08​:02 5007457 /usr/lib64/libtinfo.so.5.9
3c33624000-3c33628000 r--p 00024000 08​:02 5007457 /usr/lib64/libtinfo.so.5.9
3c33628000-3c33629000 rw-p 00028000 08​:02 5007457 /usr/lib64/libtinfo.so.5.9
3c34800000-3c34807000 r-xp 00000000 08​:02 5007913 /usr/lib64/librt-2.15.so
3c34807000-3c34a06000 ---p 00007000 08​:02 5007913 /usr/lib64/librt-2.15.so
3c34a06000-3c34a07000 r--p 00006000 08​:02 5007913 /usr/lib64/librt-2.15.so
3c34a07000-3c34a08000 rw-p 00007000 08​:02 5007913 /usr/lib64/librt-2.15.so
3c60400000-3c60420000 r-xp 00000000 08​:02 4984833 /usr/lib64/ld-2.15.so
3c6061f000-3c60620000 r--p 0001f000 08​:02 4984833 /usr/lib64/ld-2.15.so
3c60620000-3c60621000 rw-p 00020000 08​:02 4984833 /usr/lib64/ld-2.15.so
3c60621000-3c60622000 rw-p 00000000 00​:00 0
3c60800000-3c609ac000 r-xp 00000000 08​:02 4984834 /usr/lib64/libc-2.15.so
3c609ac000-3c60bac000 ---p 001ac000 08​:02 4984834 /usr/lib64/libc-2.15.so
3c60bac000-3c60bb0000 r--p 001ac000 08​:02 4984834 /usr/lib64/libc-2.15.so
3c60bb0000-3c60bb2000 rw-p 001b0000 08​:02 4984834 /usr/lib64/libc-2.15.so
3c60bb2000-3c60bb7000 rw-p 00000000 00​:00 0
3c60c00000-3c60c03000 r-xp 00000000 08​:02 4990610 /usr/lib64/libdl-2.15.so
3c60c03000-3c60e02000 ---p 00003000 08​:02 4990610 /usr/lib64/libdl-2.15.so
3c60e02000-3c60e03000 r--p 00002000 08​:02 4990610 /usr/lib64/libdl-2.15.so
3c60e03000-3c60e04000 rw-p 00003000 08​:02 4990610 /usr/lib64/libdl-2.15.so
3c61000000-3c61016000 r-xp 00000000 08​:02 4980748 /usr/lib64/libpthread-2.15.so
3c61016000-3c61216000 ---p 00016000 08​:02 4980748 /usr/lib64/libpthread-2.15.so
3c61216000-3c61217000 r--p 00016000 08​:02 4980748 /usr/lib64/libpthread-2.15.so
3c61217000-3c61218000 rw-p 00017000 08​:02 4980748 /usr/lib64/libpthread-2.15.so
3c61218000-3c6121c000 rw-p 00000000 00​:00 0
3c61800000-3c618fa000 r-xp 00000000 08​:02 4992975 /usr/lib64/libm-2.15.so
3c618fa000-3c61af9000 ---p 000fa000 08​:02 4992975 /usr/lib64/libm-2.15.so
3c61af9000-3c61afa000 r--p 000f9000 08​:02 4992975 /usr/lib64/libm-2.15.so
3c61afa000-3c61afb000 rw-p 000fa000 08​:02 4992975 /usr/lib64/libm-2.15.so
3c62800000-3c62815000 r-xp 00000000 08​:02 4981556 /usr/lib64/libgcc_s-4.7.2-20120921.so.1
3c62815000-3c62a14000 ---p 00015000 08​:02 4981556 /usr/lib64/libgcc_s-4.7.2-20120921.so.1
3c62a14000-3c62a15000 rw-p 00014000 08​:02 4981556 /usr/lib64/libgcc_s-4.7.2-20120921.so.1
3c62c00000-3c62c16000 r-xp 00000000 08​:02 5007444 /usr/lib64/libresolv-2.15.so
3c62c16000-3c62e15000 ---p 00016000 08​:02 5007444 /usr/lib64/libresolv-2.15.so
3c62e15000-3c62e16000 r--p 00015000 08​:02 5007444 /usr/lib64/libresolv-2.15.so
3c62e16000-3c62e17000 rw-p 00016000 08​:02 5007444 /usr/lib64/libresolv-2.15.so
3c62e17000-3c62e19000 rw-p 00000000 00​:00 0
3c64400000-3c644e5000 r-xp 00000000 08​:02 5007465 /usr/lib64/libstdc++.so.6.0.17
3c644e5000-3c646e4000 ---p 000e5000 08​:02 5007465 /usr/lib64/libstdc++.so.6.0.17
3c646e4000-3c646ec000 r--p 000e4000 08​:02 5007465 /usr/lib64/libstdc++.so.6.0.17
3c646ec000-3c646ee000 rw-p 000ec000 08​:02 5007465 /usr/lib64/libstdc++.so.6.0.17
3c646ee000-3c64703000 rw-p 00000000 00​:00 0
3c71000000-3c71016000 r-xp 00000000 08​:02 4988400 /usr/lib64/libnsl-2.15.so
3c71016000-3c71215000 ---p 00016000 08​:02 4988400 /usr/lib64/libnsl-2.15.so
3c71215000-3c71216000 r--p 00015000 08​:02 4988400 /usr/lib64/libnsl-2.15.so
3c71216000-3c71217000 rw-p 00016000 08​:02 4988400 /usr/lib64/libnsl-2.15.so
3c71217000-3c71219000 rw-p 00000000 00​:00 0
3c74400000-3c74556000 r-xp 00000000 08​:02 4999628 /usr/lib64/libicuuc.so.48.1.1
3c74556000-3c74756000 ---p 00156000 08​:02 4999628 /usr/lib64/libicuuc.so.48.1.1
3c74756000-3c74766000 r--p 00156000 08​:02 4999628 /usr/lib64/libicuuc.so.48.1.1
3c74766000-3c74767000 rw-p 00166000 08​:02 4999628 /usr/lib64/libicuuc.so.48.1.1
3c74767000-3c7476b000 rw-p 00000000 00​:00 0
3c75c00000-3c76d6f000 r-xp 00000000 08​:02 5000354 /usr/lib64/libicudata.so.48.1.1
3c76d6f000-3c76f6e000 ---p 0116f000 08​:02 5000354 /usr/lib64/libicudata.so.48.1.1
3c76f6e000-3c76f6f000 r--p 0116e000 08​:02 5000354 /usr/lib64/libicudata.so.48.1.1
3c76f6f000-3c76f70000 rw-p 0116f000 08​:02 5000354 /usr/lib64/libicudata.so.48.1.1
3f74800000-3f74865000 r-xp 00000000 08​:02 4987304 /usr/lib64/libfreebl3.so
3f74865000-3f74a65000 ---p 00065000 08​:02 4987304 /usr/lib64/libfreebl3.so
3f74a65000-3f74a66000 rw-p 00065000 08​:02 4987304 /usr/lib64/libfreebl3.so
3f74a66000-3f74a6b000 rw-p 00000000 00​:00 0
3f75400000-3f75408000 r-xp 00000000 08​:02 4999398 /usr/lib64/libcrypt-2.15.so
3f75408000-3f75607000 ---p 00008000 08​:02 4999398 /usr/lib64/libcrypt-2.15.so
3f75607000-3f75608000 r--p 00007000 08​:02 4999398 /usr/lib64/libcrypt-2.15.so
3f75608000-3f75609000 rw-p 00008000 08​:02 4999398 /usr/lib64/libcrypt-2.15.so
3f75609000-3f75637000 rw-p 00000000 00​:00 0
7fa9c9d6b000-7fa9ca1fc000 rw-p 00000000 00​:00 0
7fa9ca1fc000-7fa9ca20b000 r-xp 00000000 08​:04 6427882 /home/ira/rakudo/rakudo-star-2013.01/install/lib/parrot/4.10.0/dynext/nqp_dyncall_ops.so
7fa9ca20b000-7fa9ca40a000 ---p 0000f000 08​:04 6427882 /home/ira/rakudo/rakudo-star-2013.01/install/lib/parrot/4.10.0/dynext/nqp_dyncall_ops.so
7fa9ca40a000-7fa9ca40b000 r--p 0000e000 08​:04 6427882 /home/ira/rakudo/rakudo-star-2013.01/install/lib/parrot/4.10.0/dynext/nqp_dyncall_ops.so
7fa9ca40b000-7fa9ca40c000 rw-p 0000f000 08​:04 6427882 /home/ira/rakudo/rakudo-star-2013.01/install/lib/parrot/4.10.0/dynext/nqp_dyncall_ops.so
7fa9ca40c000-7fa9ca40f000 r-xp 00000000 08​:04 6427337 /home/ira/rakudo/rakudo-star-2013.01/install/lib/parrot/4.10.0/dynext/sys_ops.so
7fa9ca40f000-7fa9ca60e000 ---p 00003000 08​:04 6427337 /home/ira/rakudo/rakudo-star-2013.01/install/lib/parrot/4.10.0/dynext/sys_ops.so
7fa9ca60e000-7fa9ca60f000 r--p 00002000 08​:04 6427337 /home/ira/rakudo/rakudo-star-2013.01/install/lib/parrot/4.10.0/dynext/sys_ops.so
7fa9ca60f000-7fa9ca610000 rw-p 00003000 08​:04 6427337 /home/ira/rakudo/rakudo-star-2013.01/install/lib/parrot/4.10.0/dynext/sys_ops.so
7fa9ca610000-7fa9ca614000 r-xp 00000000 08​:04 6427332 /home/ira/rakudo/rakudo-star-2013.01/install/lib/parrot/4.10.0/dynext/math_ops.so
7fa9ca614000-7fa9ca814000 ---p 00004000 08​:04 6427332 /home/ira/rakudo/rakudo-star-2013.01/install/lib/parrot/4.10.0/dynext/math_ops.so
7fa9ca814000-7fa9ca815000 r--p 00004000 08​:04 6427332 /home/ira/rakudo/rakudo-star-2013.01/install/lib/parrot/4.10.0/dynext/math_ops.so
7fa9ca815000-7fa9ca817000 rw-p 00005000 08​:04 6427332 /home/ira/rakudo/rakudo-star-2013.01/install/lib/parrot/4.10.0/dynext/math_ops.so
7fa9ca817000-7fa9ca820000 r-xp 00000000 08​:04 6427326 /home/ira/rakudo/rakudo-star-2013.01/install/lib/parrot/4.10.0/dynext/bit_ops.so
7fa9ca820000-7fa9caa1f000 ---p 00009000 08​:04 6427326 /home/ira/rakudo/rakudo-star-2013.01/install/lib/parrot/4.10.0/dynext/bit_ops.so
7fa9caa1f000-7fa9caa20000 r--p 00008000 08​:04 6427326 /home/ira/rakudo/rakudo-star-2013.01/install/lib/parrot/4.10.0/dynext/bit_ops.so
7fa9caa20000-7fa9caa24000 rw-p 00009000 08​:04 6427326 /home/ira/rakudo/rakudo-star-2013.01/install/lib/parrot/4.10.0/dynext/bit_ops.so
7fa9caa24000-7fa9caa27000 r-xp 00000000 08​:04 6427333 /home/ira/rakudo/rakudo-star-2013.01/install/lib/parrot/4.10.0/dynext/obscure_ops.so
7fa9caa27000-7fa9cac26000 ---p 00003000 08​:04 6427333 /home/ira/rakudo/rakudo-star-2013.01/install/lib/parrot/4.10.0/dynext/obscure_ops.so
7fa9cac26000-7fa9cac27000 r--p 00002000 08​:04 6427333 /home/ira/rakudo/rakudo-star-2013.01/install/lib/parrot/4.10.0/dynext/obscure_ops.so
7fa9cac27000-7fa9cac29000 rw-p 00003000 08​:04 6427333 /home/ira/rakudo/rakudo-star-2013.01/install/lib/parrot/4.10.0/dynext/obscure_ops.so
7fa9cac29000-7fa9cac2c000 r-xp 00000000 08​:04 6427329 /home/ira/rakudo/rakudo-star-2013.01/install/lib/parrot/4.10.0/dynext/file.so
7fa9cac2c000-7fa9cae2b000 ---p 00003000 08​:04 6427329 /home/ira/rakudo/rakudo-star-2013.01/install/lib/parrot/4.10.0/dynext/file.so
7fa9cae2b000-7fa9cae2c000 r--p 00002000 08​:04 6427329 /home/ira/rakudo/rakudo-star-2013.01/install/lib/parrot/4.10.0/dynext/file.so
7fa9cae2c000-7fa9cae2d000 rw-p 00003000 08​:04 6427329 /home/ira/rakudo/rakudo-star-2013.01/install/lib/parrot/4.10.0/dynext/file.so
7fa9cae2d000-7fa9cae2f000 r-xp 00000000 08​:04 6427334 /home/ira/rakudo/rakudo-star-2013.01/install/lib/parrot/4.10.0/dynext/os.so
7fa9cae2f000-7fa9cb02e000 ---p 00002000 08​:04 6427334 /home/ira/rakudo/rakudo-star-2013.01/install/lib/parrot/4.10.0/dynext/os.soAborted (core dumped)

@p6rt
Copy link
Author

p6rt commented Mar 5, 2013

From @quester

One more observation that might be helpful​:

Whether memory allocation errors occur or not appears to depend on the
data type on the left hand of the "but" operator. If it is either an
integer or undefined or both, Rakudo will crash after a dozen or so
iterations.

All the other defined data types I have tried on the left hand side work
(or at least they don't crash; some of them aren't especially useful).

I *think* that this *may* indicate that the size of the left hand
operand of "but" affects whether the crash occurs. (If it's an integer,
the size of the integer does *not* affect whether the crash occurs, but
judging from the output of valgrind, it looks like the NQP bigint
implementation uses the bn_mp_... functions in libtommath, and the
"digits" that represent the numbers are allocated and deallocated
separately from the mp_int structure.)

If I ever have enough tuits, I will try looking at the valgrind output
again, but there are a LOT of complaints about reading unallocated
memory and using memory after it has been freed, even in the cases where
there is no crash.

FWIW, here are the tests I ran... each expression is run in a loop 100
times.

These work; at least, without double free or other memory allocation crash​:

"0" but True
"0" but False
"0" but "some_string"
[0] but True
[0] but False
[0] but "some_string"
{0=>0} but True
{0=>0} but False
{0=>0} but "some_string"
0.0 but True
0.0 but False
0.0 but "some_string"
0e0 but True
0e0 but False
0e0 but "some_string"
0+0i but True
0+0i but False
0+0i but "some_string"

These fail with double free or other memory allocation problems​:

0 but True
0 but False
0 but "some_string"
Int but True
Int but False
Int but "some_string"
Str but True
Str but False
Str but "some_string"
List but True
List but False
List but "some_string"
Hash but True
Hash but False
Hash but "some_string"
Num but True
Num but False
Num but "some_string"
Complex but True
Complex but False
Complex but "some_string"

[The following number is 2^4095, written out, so the value cannot be
less than 512 bytes long...]

522194440706576253345876355358312191289982124523691890192116741641976953985778728424413405967498779170445053357219631418993786719092896803631618043925682638972978488271854999170180795067191859157214035005927973113188159419698856372836167342172293308748403954352901852035642024370059304557233988891799014503343469488440893892973452815095130470299789726716411734651513348221529512507986199933857107770846917779942645743159118957217248367043905936319748237550094520674504208530837546834166925275516486044134775384991808184705966507606898412918594045916828375610659246423184062775112999150206172392431297837246097308511903252956622805412865917690043804311051417135098849101156584508839003337597742539960818209685142687562392007453579567729991395256699805775897135553415567045292136442139895777424891477161767258532611634530697452993846501061481697843891439474220308003706472837459911525285821188577408160690315522951458068463354171428220365223949985950890732881736611925133626529949897998045399734600887312408859224933727829625089164535236559716582775403784110923285873186648442456409760158728501220463308455437074192539205964902261490928669488824051563042951500651206733594863336608245755565801460390869016718045121902354170201577095168
but True

These fails peculiarly ("Cannot look up attributes in a type object")
but without a memory allocation error​:

Rat but True
Rat but False
Rat but "some_string"

Best regards,
Ira

@p6rt
Copy link
Author

p6rt commented May 11, 2013

From @coke

This has been failing on the daily spec test runs on feather for a week or
so.

$ ./perl6 --version
This is perl6 version 2013.04-56-gbfd8508 built on parrot 5.2.0 revision
RELEASE_5_2_0

$ .-types/bool.t
1..51
ok 1 - The object is-a 'Bool'
ok 2 - The object is-a 'Bool'
ok 3 - The object is-a 'Bool'
ok 4 - The object is-a 'Bool'
ok 5 - Bool.Bool is a Bool
ok 6 - Bool.Bool is a Bool
ok 7 - Bool.Bool works for True
ok 8 - Bool.Bool works for False
ok 9 - ?Bool is a Bool
ok 10 - ?Bool is a Bool
ok 11 - ?Bool works for True
ok 12 - ?Bool works for False
ok 13 - True works
ok 14 - False works
ok 15 - !True works
ok 16 - !False works
ok 17 - True works
ok 18 - False works
ok 19 - The object is-a 'Str'
ok 20 - The object is-a 'Str'
ok 21 - Bool stringification (True)
ok 22 - Bool stringification (False)
ok 23 - True.Str
ok 24 - False.Str
ok 25 - True.gist
ok 26 - False.gist
ok 27 - True.perl
ok 28 - False.perl
ok 29 -
ok 30 -
ok 31 - True numifies to an Int
ok 32 - False numifies to an Int
ok 33 - True Intifies to 1
ok 34 - False Intifies to 1
ok 35 - True numifies to 1
ok 36 - False numifies to 0
ok 37 - Increment of Bool​::False produces Bool​::True
ok 38 - Increment of Bool​::True still produces Bool​::True
ok 39 - Decrement of Bool​::True produces Bool​::False
ok 40 - Decrement of Bool​::False produces Bool​::False
ok 41 - Bool​::True works with "but"
ok 42 - Bool​::True works with "but"
ok 43 - Bool​::False works with "but"
ok 44 - Bool​::False works with "but"
ok 45 - Bool​::True.key works (is "True")
ok 46 - Bool​::False.key works (is "False")
ok 47 - Bool.pick return True or False
ok 48 - Bool.pick(*) returns two elems
ok 49 - Bool.roll(30) contains a True
*** glibc detected *** ./perl6​: free()​: invalid next size (fast)​:
0x0db234c8 ***
======= Backtrace​: =========
/lib/i386-linux-gnu/libc.so.6(+0x70a8a)[0xf6031a8a]
/lib/i386-linux-gnu/libc.so.6(+0x722e8)[0xf60332e8]
/lib/i386-linux-gnu/libc.so.6(cfree+0x6d)[0xf60363ed]
/home/coke/sandbox/perl6pass/rakudo/install/lib/libparrot.so.5.2.0(mem_sys_free+0x1f)[0xf75ac66f]
======= Memory map​: ========
08048000-08052000 r-xp 00000000 fe​:00 2240734
/home/coke/sandbox/perl6pass/rakudo/perl6
08052000-08053000 rw-p 00009000 fe​:00 2240734
/home/coke/sandbox/perl6pass/rakudo/perl6
09307000-0dbdd000 rw-p 00000000 00​:00 0
[heap]
f2d00000-f2d21000 rw-p 00000000 00​:00 0
f2d21000-f2e00000 ---p 00000000 00​:00 0
f2efa000-f3824000 rw-p 00000000 00​:00 0
f3824000-f3834000 r-xp 00000000 fe​:00 2236414
/home/coke/sandbox/perl6pass/rakudo/install/lib/parrot/5.2.0-devel/dynext/nqp_dyncall_ops.so
f3834000-f3835000 rw-p 00010000 fe​:00 2236414
/home/coke/sandbox/perl6pass/rakudo/install/lib/parrot/5.2.0-devel/dynext/nqp_dyncall_ops.so
f3835000-f3838000 r-xp 00000000 fe​:00 2196681
/home/coke/sandbox/perl6pass/rakudo/install/lib/parrot/5.2.0-devel/dynext/sys_ops.so
f3838000-f3839000 rw-p 00002000 fe​:00 2196681
/home/coke/sandbox/perl6pass/rakudo/install/lib/parrot/5.2.0-devel/dynext/sys_ops.so
f3839000-f383d000 r-xp 00000000 fe​:00 2196677
/home/coke/sandbox/perl6pass/rakudo/install/lib/parrot/5.2.0-devel/dynext/math_ops.so
f383d000-f383f000 rw-p 00003000 fe​:00 2196677
/home/coke/sandbox/perl6pass/rakudo/install/lib/parrot/5.2.0-devel/dynext/math_ops.so
f383f000-f3846000 r-xp 00000000 fe​:00 2196679
/home/coke/sandbox/perl6pass/rakudo/install/lib/parrot/5.2.0-devel/dynext/bit_ops.so
f3846000-f384a000 rw-p 00007000 fe​:00 2196679
/home/coke/sandbox/perl6pass/rakudo/install/lib/parrot/5.2.0-devel/dynext/bit_ops.so
f384a000-f384d000 r-xp 00000000 fe​:00 2196676
/home/coke/sandbox/perl6pass/rakudo/install/lib/parrot/5.2.0-devel/dynext/obscure_ops.so
f384d000-f384e000 rw-p 00003000 fe​:00 2196676
/home/coke/sandbox/perl6pass/rakudo/install/lib/parrot/5.2.0-devel/dynext/obscure_ops.so
f384e000-f3850000 r-xp 00000000 fe​:00 2196650
/home/coke/sandbox/perl6pass/rakudo/install/lib/parrot/5.2.0-devel/dynext/file.so
f3850000-f3851000 rw-p 00002000 fe​:00 2196650
/home/coke/sandbox/perl6pass/rakudo/install/lib/parrot/5.2.0-devel/dynext/file.so
f3851000-f3853000 r-xp 00000000 fe​:00 2196651
/home/coke/sandbox/perl6pass/rakudo/install/lib/parrot/5.2.0-devel/dynext/os.so
f3853000-f3854000 rw-p 00001000 fe​:00 2196651
/home/coke/sandbox/perl6pass/rakudo/install/lib/parrot/5.2.0-devel/dynext/os.so
f3854000-f4464000 rw-p 00000000 00​:00 0
f4464000-f4469000 r-xp 00000000 fe​:00 2196678
/home/coke/sandbox/perl6pass/rakudo/install/lib/parrot/5.2.0-devel/dynext/trans_ops.so
f4469000-f446c000 rw-p 00004000 fe​:00 2196678
/home/coke/sandbox/perl6pass/rakudo/install/lib/parrot/5.2.0-devel/dynext/trans_ops.so
f446c000-f53cc000 rw-p 00000000 00​:00 0
f53cc000-f53d1000 r-xp 00000000 fe​:00 2196682
/home/coke/sandbox/perl6pass/rakudo/install/lib/parrot/5.2.0-devel/dynext/io_ops.so
f53d1000-f53d4000 rw-p 00004000 fe​:00 2196682
/home/coke/sandbox/perl6pass/rakudo/install/lib/parrot/5.2.0-devel/dynext/io_ops.so
f53d4000-f53ee000 r-xp 00000000 fe​:00 2236413
/home/coke/sandbox/perl6pass/rakudo/install/lib/parrot/5.2.0-devel/dynext/nqp_bigint_ops.so
f53ee000-f53f1000 rw-p 0001a000 fe​:00 2236413
/home/coke/sandbox/perl6pass/rakudo/install/lib/parrot/5.2.0-devel/dynext/nqp_bigint_ops.so
f53f1000-f5413000 r-xp 00000000 fe​:00 2240658
/home/coke/sandbox/perl6pass/rakudo/dynext/perl6_ops.so
f5413000-f541d000 rw-p 00021000 fe​:00 2240658
/home/coke/sandbox/perl6pass/rakudo/dynext/perl6_ops.so
f541d000-f545f000 r-xp 00000000 fe​:00 2236412
/home/coke/sandbox/perl6pass/rakudo/install/lib/parrot/5.2.0-devel/dynext/nqp_ops.so
f545f000-f546b000 rw-p 00042000 fe​:00 2236412
/home/coke/sandbox/perl6pass/rakudo/install/lib/parrot/5.2.0-devel/dynext/nqp_ops.so
f546b000-f5472000 r-xp 00000000 fe​:00 2240655
/home/coke/sandbox/perl6pass/rakudo/dynext/perl6_group.so
f5472000-f5473000 rw-p 00006000 fe​:00 2240655
/home/coke/sandbox/perl6pass/rakudo/dynext/perl6_group.so
f5473000-f5474000 ---p 00000000 00​:00 0
f5474000-f5c73000 rwxp 00000000 00​:00 0
f5c73000-f5e73000 r--p 00000000 fe​:00 1220894
/usr/lib/locale/locale-archive
f5e73000-f5e97000 rw-p 00000000 00​:00 0
f5e97000-f5eb3000 r-xp 00000000 fe​:00 376437
/lib/i386-linux-gnu/libgcc_s.so.1
f5eb3000-f5eb4000 rw-p 0001b000 fe​:00 376437
/lib/i386-linux-gnu/libgcc_s.so.1Aborted

running inside gdb says​:

Program received signal SIGABRT, Aborted.
0xf6860667 in *__GI_raise (sig=6) at
../nptl/sysdeps/unix/sysv/linux/raise.c​:64
64 ../nptl/sysdeps/unix/sysv/linux/raise.c​: No such file or directory.
(gdb) bt
#​0 0xf6860667 in *__GI_raise (sig=6)
  at ../nptl/sysdeps/unix/sysv/linux/raise.c​:64
#​1 0xf6863a52 in *__GI_abort () at abort.c​:92
#​2 0xf689c98d in __libc_message (do_abort=2,
  fmt=0xf6963330 "*** glibc detected *** %s​: %s​: 0x%s ***\n")
  at ../sysdeps/unix/sysv/linux/libc_fatal.c​:189
#​3 0xf68a6a8a in malloc_printerr (action=<optimized out>,
  str=0x6 <Address 0x6 out of bounds>, ptr=0xc86f418) at malloc.c​:6283
#​4 0xf68a82e8 in _int_free (av=<optimized out>, p=<optimized out>)
  at malloc.c​:4795
#​5 0xf68ab3ed in *__GI___libc_free (mem=0xc86f418) at malloc.c​:3738
#​6 0xf7e2166f in mem_sys_free (from=0xc86f418) at src/gc/alloc_memory.c​:204
#​7 0xf5cb8bbe in gc_free (interp=0x8053028, obj=0xc0fc394) at
P6opaque.c​:903
#​8 0xf7daf143 in Parrot_SixModelObject_destroy (interp=0x8053028,
  _self=0xc0fc394) at sixmodelobject.c​:195
#​9 0xf7e274d4 in gc_gms_sweep_pools (self=0x8053238, interp=0x8053028)
  at src/gc/gc_gms.c​:1089
#​10 gc_gms_mark_and_sweep (interp=interp@​entry=0x8053028, flags=flags@​entry
=0)
  at src/gc/gc_gms.c​:858
#​11 0xf7e27768 in gc_gms_allocate_pmc_header (interp=0x8053028,
flags_unused=0)
  at src/gc/gc_gms.c​:1481
#​12 0xf7e21f4f in Parrot_gc_new_pmc_header (interp=interp@​entry=0x8053028,
  flags=0) at src/gc/api.c​:312
#​13 0xf7e4aff7 in get_new_pmc_header (interp=interp@​entry=0x8053028,
---Type <return> to continue, or q <return> to quit---
  base_type=<optimized out>, base_type@​entry=105, flags=<optimized out>,
  flags@​entry=0) at src/pmc.c​:571
#​14 0xf7e4b595 in Parrot_pmc_new_init (interp=interp@​entry=0x8053028,
  base_type=105, init=0x965c208) at src/pmc.c​:630
#​15 0xf7e7cbfd in Parrot_Sub_invoke (interp=0x8053028, _self=0x965c1f4,
  next=0xf41d9cf0) at ./src/pmc/sub.pmc​:457
#​16 0xf7df9a61 in Parrot_invokecc_p (cur_opcode=0xf41d9ce8,
interp=0x8053028)
  at src/ops/core_ops.c​:13891
#​17 0xf7e4c76c in runops_fast_core (interp=0x8053028,
  runcore_unused=0x80e7b80, pc=<optimized out>) at src/runcore/cores.c​:499
#​18 0xf7e4c378 in runops_int (interp=interp@​entry=0x8053028, offset=27065)
  at src/runcore/main.c​:220
#​19 0xf7e32306 in runops (interp=interp@​entry=0x8053028, offs=offs@​entry
=27065)
  at src/call/ops.c​:123
#​20 0xf7e2d7f8 in Parrot_pcc_invoke_from_sig_object (
  interp=interp@​entry=0x8053028, sub_obj=sub_obj@​entry=0x9419394,
  call_object=<optimized out>) at src/call/pcc.c​:338
#​21 0xf7e1f176 in Parrot_ext_call (interp=interp@​entry=0x8053028,
  sub_pmc=0x9419394, signature=signature@​entry=0xf7f4a580 "P->")
  at src/extend.c​:158
#​22 0xf7f198e6 in Parrot_Task_invoke (interp=0x8053028, _self=0x940dab8,
  next=0x0) at ./src/pmc/task.pmc​:173
#​23 0xf7e2d7b0 in Parrot_pcc_invoke_from_sig_object (
  interp=interp@​entry=0x8053028, sub_obj=sub_obj@​entry=0x940dab8,
---Type <return> to continue, or q <return> to quit---
  call_object=0x94193a8) at src/call/pcc.c​:330
#​24 0xf7e1f176 in Parrot_ext_call (interp=interp@​entry=0x8053028,
  sub_pmc=sub_pmc@​entry=0x940dab8, signature=signature@​entry=0xf7f4a551
"->")
  at src/extend.c​:158
#​25 0xf7e50ec2 in Parrot_cx_next_task (interp=interp@​entry=0x8053028,
  scheduler=scheduler@​entry=0x80e7780) at src/scheduler.c​:231
#​26 0xf7e5101a in Parrot_cx_outer_runloop (interp=interp@​entry=0x8053028)
  at src/scheduler.c​:149
#​27 0xf7e51129 in Parrot_cx_begin_execution (interp=interp@​entry=0x8053028,
  main=main@​entry=0x80b13c4, argv=argv@​entry=0x80eeeb0)
  at src/scheduler.c​:109
#​28 0xf7e5a4ed in Parrot_pf_execute_bytecode_program (
  interp=interp@​entry=0x8053028, pbc=pbc@​entry=0x80b1414,
  args=args@​entry=0x80eeeb0) at src/packfile/api.c​:2829
#​29 0xf7e1b33a in Parrot_api_run_bytecode (interp_pmc=0x80e2df4,
  pbc=0x80b1414, args=0x80eeeb0) at src/embed/bytecode.c​:161
#​30 0x08048fa2 in main (argc=3, argv=0xffffcdb4) at perl6.c​:616

Neither sixmodelobject's destroy method nor the test file have changed
recently.

--
Will "Coke" Coleda

@p6rt
Copy link
Author

p6rt commented May 27, 2013

From @coke

I just completed a git bisect on nom for this issue.

5838e933b362d33c8a0854a7c410c347a4911bde is the first bad commit
$ git show 5838e933b362d33c8a0854a7c410c347a4911bde
commit 5838e933b362d33c8a0854a7c410c347a4911bde
Merge​: 4741028 02c7fbb
Author​: Moritz Lenz <moritz@​faui2k3.org>
Date​: Sat May 4 21​:09​:08 2013 +0200

  Merge branch 'iospec' of https://github.com/labster/rakudo into nom

--
Will "Coke" Coleda

1 similar comment
@p6rt
Copy link
Author

p6rt commented May 27, 2013

From @coke

I just completed a git bisect on nom for this issue.

5838e933b362d33c8a0854a7c410c347a4911bde is the first bad commit
$ git show 5838e933b362d33c8a0854a7c410c347a4911bde
commit 5838e933b362d33c8a0854a7c410c347a4911bde
Merge​: 4741028 02c7fbb
Author​: Moritz Lenz <moritz@​faui2k3.org>
Date​: Sat May 4 21​:09​:08 2013 +0200

  Merge branch 'iospec' of https://github.com/labster/rakudo into nom

--
Will "Coke" Coleda

@p6rt
Copy link
Author

p6rt commented May 27, 2013

@coke - Status changed from 'new' to 'open'

@p6rt
Copy link
Author

p6rt commented May 27, 2013

From @FROGGS

Hi, labster and me already discussed that issues the last days (since
friday or so via irc).

It is true that this branch merge made this bug visible, but we dont
believe that the patch is to be blamed.

My rakudo-build on feather shows, that if you comment out one of the 51
tests of bool.t the test doesnt end in a backtrace...

I can attach diffs to show what we have tried.

@p6rt
Copy link
Author

p6rt commented Oct 11, 2014

From @usev6

Since the tests in S02-types/bool.t pass, the relevant problem seems to be the for loop with "0 but Bool​::True".

I don't see any crashes within the first 100 iterations, but on Parrot I get segfaults or crashes with around 262 iterations. On Moar and JVM there are no problems​:

$ perl6-m -e '(0 but Bool​::True) and print qq{$_ } for 1..1000;'
1 2 [...] 1000

$ perl6-j -e '(0 but Bool​::True) and print qq{$_ } for 1..1000;'
1 2 [...] 1000

$ perl6-p -e '(0 but Bool​::True) and print qq{$_ } for 1..1000;'
1 2 [...] 261 262 Segmentation fault

1 similar comment
@p6rt
Copy link
Author

p6rt commented Oct 11, 2014

From @usev6

Since the tests in S02-types/bool.t pass, the relevant problem seems to be the for loop with "0 but Bool​::True".

I don't see any crashes within the first 100 iterations, but on Parrot I get segfaults or crashes with around 262 iterations. On Moar and JVM there are no problems​:

$ perl6-m -e '(0 but Bool​::True) and print qq{$_ } for 1..1000;'
1 2 [...] 1000

$ perl6-j -e '(0 but Bool​::True) and print qq{$_ } for 1..1000;'
1 2 [...] 1000

$ perl6-p -e '(0 but Bool​::True) and print qq{$_ } for 1..1000;'
1 2 [...] 261 262 Segmentation fault

@p6rt
Copy link
Author

p6rt commented Oct 11, 2014

@usev6 - Status changed from 'new' to 'open'

@p6rt
Copy link
Author

p6rt commented Mar 12, 2015

From @usev6

As noted above the tests in S02-types/bool.t are passing for quite a while.

The only remaining problem was the segmentation fault with parrot when running '(0 but Bool​::True) and print qq{$_ } for 1..1000;'.

I just tested with the latest Rakudo Star (2015.02) and I was unable to reproduce the segfault there -- even with more iterations​:

$ perl6-p -e '(0 but Bool​::True) and print qq{$_ } for 1..10000;'
1 2 [...] 10000

I'm closing this ticket as 'resolved'.

1 similar comment
@p6rt
Copy link
Author

p6rt commented Mar 12, 2015

From @usev6

As noted above the tests in S02-types/bool.t are passing for quite a while.

The only remaining problem was the segmentation fault with parrot when running '(0 but Bool​::True) and print qq{$_ } for 1..1000;'.

I just tested with the latest Rakudo Star (2015.02) and I was unable to reproduce the segfault there -- even with more iterations​:

$ perl6-p -e '(0 but Bool​::True) and print qq{$_ } for 1..10000;'
1 2 [...] 10000

I'm closing this ticket as 'resolved'.

@p6rt p6rt closed this as completed Mar 12, 2015
@p6rt
Copy link
Author

p6rt commented Mar 12, 2015

@usev6 - Status changed from 'open' to 'resolved'

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant