Front page | perl.perl5.porters |
Postings from February 2012
[perl #91678] Failing tests for Perl 5.14.0 on Solaris 10
Thread Previous
From:
Reini Urban via RT
Date:
February 29, 2012 11:23
Subject:
[perl #91678] Failing tests for Perl 5.14.0 on Solaris 10
Message ID:
rt-3.6.HEAD-4610-1330543378-863.91678-15-0@perl.org
I was able to reproduce it with this (suncc, 64bit threads):
Summary of my perl5 (revision 5 version 14 subversion 2) configuration:
Platform:
osname=solaris, osvers=2.11, archname=i86pc-solaris-thread-multi-64
uname='sunos solaris 5.11 11.0 i86pc i386 i86pc '
config_args='-de -Dusedevel -Dinstallman1dir=none -
Dinstallman3dir=none -Dinstallsiteman1dir=none -Dinstallsiteman3dir=none
-DEBUGGING -Duseithreads -Duse64bitall -Dusethreads -Dcc=cc -Uuseshrplib
-Dcf_email=perl-bugs@sun.com'
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 -m64 -DDEBUGGING -D_LARGEFILE_SOURCE
-D_FILE_OFFSET_BITS=64 -DPERL_USE_SAFE_PUTENV',
optimize='-O -g',
cppflags='-D_REENTRANT -m64 -DDEBUGGING'
ccversion='Sun C 5.12 SunOS_i386 Spica 2011/07/21', gccversion='',
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 =' -m64 -L/opt/solstudiodev/prod/lib/amd64 -
L/lib/64 -L/usr/local/lib -L/usr/gnu/lib '
libpth=/opt/solstudiodev/prod/lib/amd64 /lib/64 /usr/local/lib
/usr/gnu/lib /usr/lib /usr/ccs/lib
libs=-lsocket -lnsl -lgdbm -ldb -ldl -lm -lpthread -lc
perllibs=-lsocket -lnsl -ldl -lm -lpthread -lc
libc=/lib/libc.so, so=so, useshrplib=false, libperl=libperl.a
gnulibc_version=''
Dynamic Linking:
dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags=' '
cccdlflags='-KPIC', lddlflags=' -G -m64 -
L/opt/solstudiodev/prod/lib/amd64 -L/lib/64 -L/usr/local/lib -
L/usr/gnu/lib'
The failure is in anonymise_cv_maybe at ithread_clear, perl_destruct:
Program received signal SIGSEGV, Segmentation fault.
0x000000000052ce68 in Perl_sv_vcatpvfn (my_perl=<value optimized out>,
sv=<value optimized out>, pat=<value optimized out>,
patlen=<value optimized out>, args=<value optimized out>, svargs=
<value optimized out>, svmax=<value optimized out>,
maybe_tainted=<value optimized out>) at sv.c:10474
10474 elen = strlen(eptr);
Current language: auto; currently minimal
(gdb) bt
#0 0x000000000052ce68 in Perl_sv_vcatpvfn (my_perl=<value optimized
out>, sv=<value optimized out>, pat=<value optimized out>,
patlen=<value optimized out>, args=<value optimized out>, svargs=
<value optimized out>, svmax=<value optimized out>,
maybe_tainted=<value optimized out>) at sv.c:10474
#1 0x000000000052a6eb in Perl_sv_vsetpvfn (my_perl=<value optimized
out>, sv=<value optimized out>, pat=<value optimized out>,
patlen=<value optimized out>, args=<value optimized out>, svargs=
<value optimized out>, svmax=<value optimized out>,
maybe_tainted=<value optimized out>) at sv.c:9892
#2 0x0000000000526d1e in Perl_vnewSVpvf (my_perl=<value optimized out>,
pat=<value optimized out>, args=<value optimized out>) at sv.c:8588
#3 0x0000000000526c08 in Perl_newSVpvf (my_perl=<value optimized out>,
pat=<value optimized out>) at sv.c:8572
#4 0x000000000051ff58 in S_anonymise_cv_maybe (my_perl=<value optimized
out>, gv=<value optimized out>, cv=<value optimized out>)
at sv.c:6013
#5 0x000000000051efe9 in Perl_sv_kill_backrefs (my_perl=<value
optimized out>, sv=<value optimized out>, av=<value optimized out>)
at sv.c:5783
#6 0x00000000004e7ed0 in Perl_magic_killbackrefs (my_perl=<value
optimized out>, sv=<value optimized out>, mg=<value optimized out>)
at mg.c:2378
#7 0x000000000051e5bf in S_sv_unmagicext_flags (my_perl=<value
optimized out>, sv=<value optimized out>, type=<value optimized out>,
vtbl=<value optimized out>, flags=<value optimized out>) at
sv.c:5437
#8 0x000000000051e827 in Perl_sv_unmagic (my_perl=<value optimized
out>, sv=<value optimized out>, type=<value optimized out>) at sv.c:5476
#9 0x00000000005201a4 in Perl_sv_clear (my_perl=<value optimized out>,
orig_sv=<value optimized out>) at sv.c:6084
#10 0x0000000000521396 in Perl_sv_free2 (my_perl=<value optimized out>,
sv=<value optimized out>) at sv.c:6474
#11 0x0000000000521265 in Perl_sv_free (my_perl=<value optimized out>,
sv=<value optimized out>) at sv.c:6451
#12 0x000000000050fbae in do_clean_all (my_perl=<value optimized out>,
sv=<value optimized out>) at sv.c:614
#13 0x000000000050f21b in S_visit (my_perl=<value optimized out>, f=
<value optimized out>, flags=<value optimized out>,
mask=<value optimized out>) at sv.c:420
#14 0x000000000050fbdb in Perl_sv_clean_all (my_perl=<value optimized
out>) at sv.c:633
#15 0x0000000000458ebf in perl_destruct (my_perl=<value optimized out>)
at perl.c:1085
#16 0xfffffd7ffb8f3d51 in S_ithread_clear (my_perl=<value optimized
out>, thread=<value optimized out>) at threads.xs:228
#17 0xfffffd7ffb8f7776 in XS_threads_join (my_perl=<value optimized
out>, cv=<value optimized out>) at threads.xs:1306
#18 0x000000000050d043 in Perl_pp_entersub (my_perl=<value optimized
out>) at pp_hot.c:3046
#19 0x00000000004d6580 in Perl_runops_debug (my_perl=<value optimized
out>) at dump.c:2266
#20 0x000000000045c15c in Perl_call_sv (my_perl=<value optimized out>,
sv=<value optimized out>, flags=<value optimized out>) at perl.c:2647
#21 0x0000000000461573 in Perl_call_list (my_perl=<value optimized out>,
oldscope=<value optimized out>, paramList=<value optimized out>)
at perl.c:4714
#22 0x000000000044ed8d in S_process_special_blocks (my_perl=<value
optimized out>, fullname=<value optimized out>, gv=<value optimized
out>,
cv=<value optimized out>) at op.c:6462
#23 0x000000000044e9e8 in Perl_newATTRSUB (my_perl=<value optimized
out>, floor=<value optimized out>, o=<value optimized out>,
proto=<value optimized out>, attrs=<value optimized out>, block=
<value optimized out>) at op.c:6433
#24 0x0000000000496d8e in Perl_yyparse (my_perl=<value optimized out>,
gramtype=<value optimized out>) at perly.y:317
#25 0x000000000045a9c4 in S_parse_body (my_perl=<value optimized out>,
env=<value optimized out>, xsinit=<value optimized out>) at perl.c:2194
#26 0x0000000000459b0c in perl_parse (my_perl=<value optimized out>,
xsinit=<value optimized out>, argc=<value optimized out>,
argv=<value optimized out>, env=<value optimized out>) at
perl.c:1613
#27 0x000000000043d445 in main (argc=<value optimized out>, argv=<value
optimized out>, env=<value optimized out>) at perlmain.c:118
(gdb) up 4
#4 0x000000000051ff58 in S_anonymise_cv_maybe (my_perl=<value optimized
out>, gv=<value optimized out>, cv=<value optimized out>)
at sv.c:6013
6009 /* if not, anonymise: */
6010 stash = GvSTASH(gv) && HvNAME(GvSTASH(gv))
6011 ? HvENAME(GvSTASH(gv)) : NULL;
6012 gvname = Perl_newSVpvf(aTHX_ "%s::__ANON__",
6013 stash ? stash :
"__ANON__");
I'm not so good in knowing all 64bit registers on suncc by hard.
r13 seems to be the gv in question, but p Perl_sv_dump(my_perl,
0xaa6a58)
SEGV at if (!PL_perlio)
(gdb) p *(GV*)0xaa6a58
$7 = {sv_any = 0xa9bbb8, sv_refcnt = 0, sv_flags = 75530249, sv_u =
{svu_pv = 0xaa9118 "", svu_iv = 11178264, svu_uv = 11178264,
svu_rv = 0xaa9118, svu_array = 0xaa9118, svu_hash = 0xaa9118, svu_gp
= 0xaa9118, svu_fp = 0xaa9118}}
(gdb) p *(XPVGV*)0xa9bbb8
$8 = {xmg_stash = 0x0, xmg_u = {xmg_magic = 0x0, xmg_ourstash = 0x0},
xpv_cur = 2, xpv_len = 0, xiv_u = {xivu_iv = 10466336,
xivu_uv = 10466336, xivu_i32 = 10466336, xivu_namehek = 0x9fb420},
xnv_u = {xnv_nv = 5.300217672829891e-317, xgv_stash = 0xa3b150,
xpad_cop_seq = {xlow = 10727760, xhigh = 0}, xbm_s = {xbm_previous =
10727760, xbm_flags = 0 '\0', xbm_rare = 0 '\0'}}}
and the gv_stash is indeed corrupt:
(gdb) p *(HV*)0xa3b150
$9 = {sv_any = 0x9e7eb8, sv_refcnt = 1, sv_flags = 570458124, sv_u =
{svu_pv = 0xa3ccf8 "\220\213�", svu_iv = 10734840, svu_uv = 10734840,
svu_rv = 0xa3ccf8, svu_array = 0xa3ccf8, svu_hash = 0xa3ccf8, svu_gp
= 0xa3ccf8, svu_fp = 0xa3ccf8}}
--
Reini Urban
---
via perlbug: queue: perl5 status: open
https://rt.perl.org:443/rt3/Ticket/Display.html?id=91678
Thread Previous