Bug#476579: libmoose-perl: perl core dumps with Moose and threads

Piotr Roszatycki dexter at debian.org
Thu Apr 17 18:02:43 UTC 2008


Package: libmoose-perl
Version: 0.40-1
Severity: important

Moose can't be used with threads:

$ perl -ale 'use threads; package P; use Moose; has "a" => isa=>"Str |
Num"; package main; my $thr = threads->create(sub {  }); $thr->join();
'
(sid)root at dandelion:/home/dexter# perl -ale 'use threads; package P;
use Moose; has "a" => isa=>"Str | Num"; package main; my $thr =
threads->create(sub {  }); $thr->join(); '
*** glibc detected *** perl: double free or corruption (!prev): 0x086c5480 ***
======= Backtrace: =========
/lib/libc.so.6[0xb7e73007]
/lib/libc.so.6(cfree+0x89)[0xb7e74ca9]
perl(Perl_pregfree+0x3e)[0x809eb7e]
perl(perl_destruct+0xcf1)[0x806b661]
/usr/lib/perl/5.8/auto/threads/threads.so[0xb7db458c]
/usr/lib/perl/5.8/auto/threads/threads.so(Perl_ithread_join+0x219)[0xb7db4819]
/usr/lib/perl/5.8/auto/threads/threads.so(XS_threads_join+0x7c)[0xb7db497c]
perl(Perl_pp_entersub+0x313)[0x80c0923]
perl(Perl_runops_standard+0x1b)[0x80bf2fb]
perl(perl_run+0x2db)[0x806721b]
perl(main+0x112)[0x8063752]
/lib/libc.so.6(__libc_start_main+0xe0)[0xb7e22450]
perl[0x80635d1]
======= Memory map: ========
08048000-0814a000 r-xp 00000000 fe:00 2245477    /usr/bin/perl
0814a000-0814e000 rw-p 00101000 fe:00 2245477    /usr/bin/perl
0814e000-086d9000 rw-p 0814e000 00:00 0          [heap]
b7400000-b7421000 rw-p b7400000 00:00 0
b7421000-b7500000 ---p b7421000 00:00 0
b7573000-b757f000 r-xp 00000000 fe:00 2458772    /lib/libgcc_s.so.1
b757f000-b7580000 rw-p 0000b000 fe:00 2458772    /lib/libgcc_s.so.1
b7583000-b7584000 ---p b7583000 00:00 0
b7584000-b7da4000 rw-p b7584000 00:00 0
b7da4000-b7da6000 r-xp 00000000 fe:00 2590082
/usr/lib/perl5/auto/Class/MOP/MOP.so
b7da6000-b7da7000 rw-p 00001000 fe:00 2590082
/usr/lib/perl5/auto/Class/MOP/MOP.so
b7da7000-b7db0000 r-xp 00000000 fe:00 2688267
/usr/lib/perl/5.8.8/auto/List/Util/Util.so
b7db0000-b7db1000 rw-p 00008000 fe:00 2688267
/usr/lib/perl/5.8.8/auto/List/Util/Util.so
b7db1000-b7db7000 r-xp 00000000 fe:00 3524584
/usr/lib/perl/5.8.8/auto/threads/threads.so
b7db7000-b7db8000 rw-p 00005000 fe:00 3524584
/usr/lib/perl/5.8.8/auto/threads/threads.so
b7db8000-b7dda000 rw-p b7db8000 00:00 0
b7dda000-b7de3000 r-xp 00000000 fe:00 2458734    /lib/libcrypt-2.7.so
b7de3000-b7de5000 rw-p 00008000 fe:00 2458734    /lib/libcrypt-2.7.so
b7de5000-b7e0c000 rw-p b7de5000 00:00 0
b7e0c000-b7f3b000 r-xp 00000000 fe:00 2458732    /lib/libc-2.7.so
b7f3b000-b7f3c000 r--p 0012f000 fe:00 2458732    /lib/libc-2.7.so
b7f3c000-b7f3e000 rw-p 00130000 fe:00 2458732    /lib/libc-2.7.so
b7f3e000-b7f42000 rw-p b7f3e000 00:00 0
b7f42000-b7f55000 r-xp 00000000 fe:00 2458746    /lib/libpthread-2.7.so
b7f55000-b7f57000 rw-p 00012000 fe:00 2458746    /lib/libpthread-2.7.so
b7f57000-b7f59000 rw-p b7f57000 00:00 0
b7f59000-b7f7c000 r-xp 00000000 fe:00 2458736    /lib/libm-2.7.so
b7f7c000-b7f7e000 rw-p 00022000 fe:00 2458736    /lib/libm-2.7.so
b7f7e000-b7f80000 r-xp 00000000 fe:00 2458735    /lib/libdl-2.7.so
b7f80000-b7f82000 rw-p 00001000 fe:00 2458735    /lib/libdl-2.7.so
b7f82000-b7f84000 r-xp 00000000 fe:00 2491161
/usr/lib/perl5/auto/Sub/Name/Name.so
b7f84000-b7f85000 rw-p 00001000 fe:00 2491161
/usr/lib/perl5/auto/Sub/Name/Name.so
b7f85000-b7f87000 rw-p b7f85000 00:00 0
b7f87000-b7f88000 r-xp b7f87000 00:00 0          [vdso]
b7f88000-b7fa2000 r-xp 00000000 fe:00 2458723    /lib/ld-2.7.so
b7fa2000-b7fa4000 rw-p 00019000 fe:00 2458723    /lib/ld-2.7.so
bfe5a000-bfe6f000 rw-p bffeb000 00:00 0          [stack]
Aborted (core dumped)

I don't understand, why it core dumps with 'isa'. It is more strange
that it core dumps with Debian's Perl only. I've tested it with
ActiveState and Strawberry for Win32, and it was ok.

-- 
 .''`.    Piotr Roszatycki
: :' :    mailto:Piotr.Roszatycki at gmail.com
`. `'     mailto:dexter at debian.org
  `-





More information about the pkg-perl-maintainers mailing list