Subject: | segfault under threads |
Date: | Tue, 5 Nov 2013 13:43:17 +0000 |
To: | "bug-Want [...] rt.cpan.org" <bug-Want [...] rt.cpan.org> |
From: | "Lewitzki Andreas (Telenor Sverige AB)" <andreas.lewitzki [...] bredband.com> |
Segmentation fault when using want() under threads. Different versions.
Example perl-5.16.1:
perl -Mthreads -MWant -e 'threads->create(sub{want("OBJECT")})->join'
Signal SEGV at /opt/perlbrew/perls/perl-5.16.1/lib/site_perl/5.16.1/x86_64-linux-thread-multi/Want.pm line 131 thread 1.
Want::wantref(4) called at /opt/perlbrew/perls/perl-5.16.1/lib/site_perl/5.16.1/x86_64-linux-thread-multi/Want.pm line 30 thread 1
Want::_wantone(3, 'OBJECT') called at /opt/perlbrew/perls/perl-5.16.1/lib/site_perl/5.16.1/x86_64-linux-thread-multi/Want.pm line 117 thread 1
Want::want_uplevel(2) called at /opt/perlbrew/perls/perl-5.16.1/lib/site_perl/5.16.1/x86_64-linux-thread-multi/Want.pm line 82 thread 1
Want::want('OBJECT') called at -e line 1 thread 1
main::__ANON__[-e:1]() called at -e line 1 thread 1
eval {...} called at -e line 1 thread 1
Summary of my perl5 (revision 5 version 16 subversion 1) configuration:
Platform:
osname=linux, osvers=2.6.32-220.el6.x86_64, archname=x86_64-linux-thread-multi
uname='linux ni-tnetprobe01 2.6.32-220.el6.x86_64 #1 smp wed nov 9 08:03:13 est 2011 x86_64 x86_64 x86_64 gnulinux '
config_args='-de -Duserelocatableinc -Dprefix=/opt/perlbrew/perls/perl-5.16.1 -Dusethreads -Doptimize=-O2 -march=nocona -Aeval:scriptdir=/opt/perlbrew/perls/perl-5.16.1/bin'
hint=recommended, useposix=true, d_sigaction=define
useithreads=define, usemultiplicity=define
useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
use64bitint=define, use64bitall=define, uselongdouble=undef
usemymalloc=n, bincompat5005=undef
Compiler:
cc='cc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
optimize='-O2 -march=nocona',
cppflags='-D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include'
ccversion='', gccversion='4.4.6 20120305 (Red Hat 4.4.6-4)', gccosandvers=''
intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=12345678
d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
ivtype='long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
alignbytes=8, prototype=define
Linker and Libraries:
ld='cc', ldflags =' -fstack-protector -L/usr/local/lib'
libpth=/usr/local/lib /lib/../lib64 /usr/lib/../lib64 /lib /usr/lib /lib64 /usr/lib64 /usr/local/lib64
libs=-lnsl -ldl -lm -lcrypt -lutil -lpthread -lc
perllibs=-lnsl -ldl -lm -lcrypt -lutil -lpthread -lc
libc=/lib/libc-2.12.so, so=so, useshrplib=false, libperl=libperl.a
gnulibc_version='2.12'
Dynamic Linking:
dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E'
cccdlflags='-fPIC', lddlflags='-shared -O2 -march=nocona -L/usr/local/lib -fstack-protector'
Characteristics of this binary (from libperl):
Compile-time options: HAS_TIMES MULTIPLICITY PERLIO_LAYERS
PERL_DONT_CREATE_GVSV PERL_IMPLICIT_CONTEXT
PERL_MALLOC_WRAP PERL_PRESERVE_IVUV USE_64_BIT_ALL
USE_64_BIT_INT USE_ITHREADS USE_LARGE_FILES
USE_LOCALE USE_LOCALE_COLLATE USE_LOCALE_CTYPE
USE_LOCALE_NUMERIC USE_PERLIO USE_PERL_ATOF
USE_REENTRANT_API
Built under linux
Compiled at Oct 4 2012 10:35:18
%ENV:
PERLBREW_BASHRC_VERSION="0.51"
PERLBREW_HOME="/home/ninja/.perlbrew"
PERLBREW_MANPATH="/opt/perlbrew/perls/perl-5.16.1/man"
PERLBREW_PATH="/opt/perlbrew/bin:/opt/perlbrew/perls/perl-5.16.1/bin"
PERLBREW_PERL="perl-5.16.1"
PERLBREW_ROOT="/opt/perlbrew"
PERLBREW_VERSION="0.51"
@INC:
/opt/perlbrew/perls/perl-5.16.1/lib/site_perl/5.16.1/x86_64-linux-thread-multi
/opt/perlbrew/perls/perl-5.16.1/lib/site_perl/5.16.1
/opt/perlbrew/perls/perl-5.16.1/lib/5.16.1/x86_64-linux-thread-multi
/opt/perlbrew/perls/perl-5.16.1/lib/5.16.1
.