Skip Menu |
 
Report information
Id: 91678
Status: resolved
Priority: 0/
Queue: perl5

Owner: stmpeters <steve [at] fisharerojo.org>
Requestors: nxadm [at] cpan.org
Cc: dmichelsen <dam [at] baltic-online.de>
AdminCc:

Operating System: (no value)
PatchStatus: (no value)
Severity: low
Type: unknown
Perl Version: (no value)
Fixed In: (no value)



Subject: Failing tests for Perl 5.14.0 on Solaris 10
Date: Thu, 26 May 2011 10:08:35 +0200
To: perlbug [...] perl.org
From: Claudio Ramirez <nxadm [...] cpan.org>

Message body is not shown because sender requested not to inline it.

Message body is not shown because sender requested not to inline it.

Download (untitled) / with headers
text/plain 5.3k
This is a bug report for perl from nxadm@cpan.org,
generated with the help of perlbug 1.39 running under perl 5.14.0.


-----------------------------------------------------------------
[Please describe your issue here]

Hi,

The 64-bit build of Perl 5.14.0 on Solaris 10 does no pass all the tests (make test). One set of failing tests only apply to threaded builds (-Dthreads) and looking at the code of the failing tests confirms that the fails are related to threading code. The smaller set of failing tests are applicable to both threaded and non-threaded builds.  In contrast, the 32-bit (threaded and non-threaded) build passes all the tests.

We can talk about a regression because Perl 5.12.3 (64-bit, threaded) builds fine on Solaris 10 and passes all the tests.

The configure parameters are as follows:

- Solaris 10, Sun Studio 12, 64-bit non-threaded perl build:
./Configure -Duse64bitall -ders -Dprefix=$INSTALLPATH -Dman1dir=$INSTALLPATH/share/man/man1 -Dman3dir=$INSTALLPATH/share/man/man3 -Dsiteman1dir=$INSTALLPATH/share/man/man1 -Dsiteman3dir=$INSTALLPATH/share/man/man3 -Duseshrplib -Dcf_by=$NAME -Dcf_email=$EMAIL

- Solaris 10, Sun Studio 12, 64-bit threaded perl build:
./Configure -Duse64bitall -Dusethreads -ders -Dprefix=$INSTALLPATH -Dman1dir=$INSTALLPATH/share/man/man1 -Dman3dir=$INSTALLPATH/share/man/man3 -Dsiteman1dir=$INSTALLPATH/share/man/man1 -Dsiteman3dir=$INSTALLPATH/share/man/man3 -Duseshrplib -Dcf_by=$NAME -Dcf_email=$EMAIL

Stripped down configure options where tried (just -Duse64bitall and -Dusethread options with no effect).

The detailed output of the tests (harnass) is attached in two corresponding files because of their size and verbosity (threaded_test_output.txt and non-threaded_test_output.txt).

Having discussed this issue with the people of OpenCSW, a community Solaris packaging effort (http://www.opencsw.org), they agreed to offer access to their buildfarm (with Solaris 8, 9 and 10 both in x86 and sparc versions) to perl developers that want to help fix these building problems. Feel free to contact me for additional tests, information, etc.


[Please do not change anything below this line]
-----------------------------------------------------------------
---
Flags:
    category=core
    severity=critical
---
Site configuration information for perl 5.14.0:

Configured by Claudio_Ramirez at Mon May 16 12:12:24 CEST 2011.

Summary of my perl5 (revision 5 version 14 subversion 0) configuration:
  
  Platform:
    osname=linux, osvers=2.6.38-8-generic, archname=x86_64-linux-gnu-thread-multi
    uname='linux melbourne 2.6.38-8-generic #42-ubuntu smp mon apr 11 03:31:24 utc 2011 x86_64 x86_64 x86_64 gnulinux '
    config_args='-de -Dprefix=/home/claudio/lib/perlbrew/perls/perl-5.14.0 -Dusethreads -Duselargefiles -Dcccdlflags=-fPIC -Dpager=/usr/bin/sensible-pager -Doptimize=-O2 -Duseshrplib -Dcf_by=Claudio_Ramirez -Dcf_email=claudio.ramirez@health.fgov.be -Duse64bitall -Darchname=x86_64-linux-gnu -Dccflags=-DDEBIAN'
    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 -DDEBIAN -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
    optimize='-O2',
    cppflags='-D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include'
    ccversion='', gccversion='4.5.2', 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 /usr/lib /usr/lib/x86_64-linux-gnu /lib64 /usr/lib64
    libs=-lnsl -ldl -lm -lcrypt -lutil -lpthread -lc
    perllibs=-lnsl -ldl -lm -lcrypt -lutil -lpthread -lc
    libc=, so=so, useshrplib=true, libperl=libperl.so
    gnulibc_version='2.13'
  Dynamic Linking:
    dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E -Wl,-rpath,/home/claudio/lib/perlbrew/perls/perl-5.14.0/lib/5.14.0/x86_64-linux-gnu-thread-multi/CORE'
    cccdlflags='-fPIC', lddlflags='-shared -O2 -L/usr/local/lib -fstack-protector'

Locally applied patches:
   

---
@INC for perl 5.14.0:
    /home/claudio/lib/perlbrew/perls/perl-5.14.0/lib/site_perl/5.14.0/x86_64-linux-gnu-thread-multi
    /home/claudio/lib/perlbrew/perls/perl-5.14.0/lib/site_perl/5.14.0
    /home/claudio/lib/perlbrew/perls/perl-5.14.0/lib/5.14.0/x86_64-linux-gnu-thread-multi
    /home/claudio/lib/perlbrew/perls/perl-5.14.0/lib/5.14.0
    .

---
Environment for perl 5.14.0:
    HOME=/home/claudio
    LANG=nl_BE.UTF-8
    LANGUAGE=en
    LC_MESSAGES=en_US.UTF-8
    LD_LIBRARY_PATH (unset)
    LOGDIR (unset)
    PATH=/home/claudio/lib/perlbrew/bin:/home/claudio/lib/perlbrew/perls/current/bin:/home/claudio/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
    PERLBREW_PATH=/home/claudio/lib/perlbrew/bin:/home/claudio/lib/perlbrew/perls/current/bin
    PERLBREW_PERL=perl-5.14.0
    PERLBREW_ROOT=/home/claudio/lib/perlbrew
    PERLBREW_VERSION=0.19
    PERL_BADLANG (unset)
    SHELL=/bin/bash

Download (untitled) / with headers
text/plain 143b
As expected from the releases notes of 5.14.1, the building problems on Solaris 10 persist on this new Perl Release (same output of make test).
RT-Send-CC: perl5-porters [...] perl.org
Download (untitled) / with headers
text/plain 260b
On Mon Jun 20 10:46:05 2011, nxadm wrote: Show quoted text
> As expected from the releases notes of 5.14.1, the building problems on > Solaris 10 persist on this new Perl Release (same output of make test).
I'll get a virtual machine setup this weekend to try this out. Steve
Subject: Re: [perl #91678] Failing tests for Perl 5.14.0 on Solaris 10
Date: Thu, 8 Sep 2011 18:13:18 +0200
To: perlbug-followup [...] perl.org
From: Claudio Ramirez <nxadm [...] cpan.org>
Download (untitled) / with headers
text/plain 509b
On Thu, Sep 8, 2011 at 6:00 PM, Steve Peters via RT <perlbug-followup@perl.org> wrote: Show quoted text
> On Mon Jun 20 10:46:05 2011, nxadm wrote:
>> As expected from the releases notes of 5.14.1, the building problems on >> Solaris 10 persist on this new Perl Release (same output of make test).
> > I'll get a virtual machine setup this weekend to try this out. > > Steve >
Thank yoi, Steve. Feel free to contact me. We are in the process of setting up (Solaris) smoke servers to detect failing builds on time. Claudio
RT-Send-CC: perl5-porters [...] perl.org
Download (untitled) / with headers
text/plain 887b
I'm testing it now on my SunOS solaris 5.11 11.0 i86pc i386 i86pc 64-bit vm. I never tried 64-bit there, only building 32-bit regularly with sun cc and gcc. Those work fine - but all 32bit: /usr/local/bin/perl5.15.6d-nt /usr/local/bin/perl5.15.4d-nt /usr/local/bin/perl5.15.4d-nt-gcc /usr/local/bin/perl5.15.4d-nt@36df1ff0 /usr/local/bin/perl5.14.2d-gcc /usr/local/bin/perl5.14.2d-nt /usr/local/bin/perl5.14.2d-nt-gcc /usr/local/bin/perl5.12.3-nt /usr/local/bin/perl5.12.3d-gcc So far I've got for 64-bit LD_LIBRARY_PATH=/usr/share/src/perl/build- 5.15.6d@b79fac8f ./perl -f -Ilib pod/buildtoc -q ld.so.1: perl: fatal: relocation error: R_AMD64_PC32: file /usr/share/src/perl/build-5.15.6d@b79fac8f/libperl.so: symbol main: value 0x280024ea8b8 does not fit If I don't find anything we'd need a perl -V from your solaris box, because you perlbug'ed it from ubuntu. -- Reini Urban
RT-Send-CC: perl5-porters [...] perl.org
Download (untitled) / with headers
text/plain 8.1k
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 Show quoted text
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 Show quoted text
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 Show quoted text
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 Show quoted text
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 Show quoted text
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 Show quoted text
out>, thread=<value optimized out>) at threads.xs:228
#17 0xfffffd7ffb8f7776 in XS_threads_join (my_perl=<value optimized Show quoted text
out>, cv=<value optimized out>) at threads.xs:1306
#18 0x000000000050d043 in Perl_pp_entersub (my_perl=<value optimized Show quoted text
out>) at pp_hot.c:3046
#19 0x00000000004d6580 in Perl_runops_debug (my_perl=<value optimized Show quoted text
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 Show quoted text
out>,
cv=<value optimized out>) at op.c:6462 #23 0x000000000044e9e8 in Perl_newATTRSUB (my_perl=<value optimized Show quoted text
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 Show quoted text
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
RT-Send-CC: perl5-porters [...] perl.org
Download (untitled) / with headers
text/plain 752b
bisected to v5.15.3-240-gf778bcf universal.c: sv_does() UTF8 cleanup This is the first commit after 5.14.2 which fixes solaris suncc 64bit threaded. But I doubt it is the fix which needs to be backported to 5.14.3 commit f778bcfda5fdc759036c3f3509c3a1a0f8a59f28 Author: Brian Fraser <fraserbn@gmail.com> Date: Fri Sep 30 13:42:31 2011 -0700 universal.c: sv_does() UTF8 cleanup. This adds _sv, _pv, and _pvn forms to sv_does, and changes it to use sv_ref() instead of sv_reftype(). The problem is that the previous commits from on v5.15.3-201-gd35fec6 broke compilation for sv.o, and the sv_does() fix looks unrelated to the solaris problem at all. "sv.c", line 9181: undefined symbol: PERL_ARGS_ASSERT_SV_REF -- Reini Urban
CC: perl5-porters [...] perl.org
Subject: Re: [perl #91678] Failing tests for Perl 5.14.0 on Solaris 10
Date: Thu, 1 Mar 2012 05:19:03 -0800
To: perlbug-followup [...] perl.org
From: Brian Fraser <fraserbn [...] gmail.com>
Download (untitled) / with headers
text/plain 1.7k
On Wed, Feb 29, 2012 at 7:42 PM, Reini Urban via RT <perlbug-followup@perl.org> wrote:
Show quoted text
bisected to v5.15.3-240-gf778bcf universal.c: sv_does() UTF8 cleanup

This is the first commit after 5.14.2 which fixes solaris suncc 64bit
threaded. But I doubt it is the fix which needs to be backported to
5.14.3

commit f778bcfda5fdc759036c3f3509c3a1a0f8a59f28
Author: Brian Fraser <fraserbn@gmail.com>
Date:   Fri Sep 30 13:42:31 2011 -0700

   universal.c: sv_does() UTF8 cleanup.

   This adds _sv, _pv, and _pvn forms to sv_does, and changes it to use
   sv_ref() instead of sv_reftype().

The problem is that the previous commits from on v5.15.3-201-gd35fec6
broke compilation for sv.o, and the sv_does() fix looks unrelated to the
solaris problem at all.

"sv.c", line 9181: undefined symbol: PERL_ARGS_ASSERT_SV_REF
--
Reini Urban

---
via perlbug:  queue: perl5 status: open
https://rt.perl.org:443/rt3/Ticket/Display.html?id=91678

This seems like a separate bug, since those commits were never merged to 5.14. The anonymize_cv_maybe code originally had several issues with PERL_DESTRUCT_LEVEL=2, and you pointing out that perl_destruct is related makes this all the more suspicious. Plus, I wouldn't trust myself to have fixed all of them : D
I can't help you much beyond that right now, since I'm away for the rest of the week (company meeting, Vegas, huzzah!) and don't have access to a Solaris box at the moment. Sorry!

The undefined symbol PERL_ARGS_ASSERT_SV_REF was me being sloppy in that branch, and committing without running make regen first. I think it should be fixed if you run that before compiling. However, I don't see how that could affect the sv_does commit, since grepping through proto.h shows that the symbol is already defined by then?

RT-Send-CC: perl5-porters [...] perl.org
Download (untitled) / with headers
text/plain 1.3k
Finished a revised bisecter with make regen added. ./Configure -des -Duseithreads -Duse64bitall -Dusethreads -Dcc=cc - Duseshrplib -Dusedevel && make regen test_prep && (cd t; ./TEST re/pat_advanced_thr.t; cd ..) The first good commit for solaris suncc 64bit threaded since 5.12.4 is v5.15.3-232-g1bac5ec 1bac5ec sv.c: S_anonymise_cv_maybe UTF8 cleanup. which fixes precisely the error I got in gdb. This fix has nothing to do with UTF8, it just correctly uses a HEK for GV names. STATIC void S_anonymise_cv_maybe(pTHX_ GV *gv, CV* cv) { - char *stash; SV *gvname; GV *anongv; @@ -5913,10 +5912,10 @@ S_anonymise_cv_maybe(pTHX_ GV *gv, CV* cv) } /* if not, anonymise: */ - stash = GvSTASH(gv) && HvNAME(GvSTASH(gv)) - ? HvENAME(GvSTASH(gv)) : NULL; - gvname = Perl_newSVpvf(aTHX_ "%s::__ANON__", - stash ? stash : "__ANON__"); + gvname = (GvSTASH(gv) && HvNAME(GvSTASH(gv)) && HvENAME(GvSTASH(gv))) + ? newSVhek(HvENAME_HEK(GvSTASH(gv))) + : newSVpvn_flags( "__ANON__", 8, 0 ); + sv_catpvs(gvname, "::__ANON__"); anongv = gv_fetchsv(gvname, GV_ADDMULTI, SVt_PVCV); SvREFCNT_dec(gvname); I cherry-picked 1bac5ec on 5.14.2 and all tests pass now. So just 1bac5ec must be added to 5.14.3 to fix this 5.14 regression. -- Reini Urban
RT-Send-CC: perl5-porters [...] perl.org
Download (untitled) / with headers
text/plain 162b
I would propose to close this bug. Reini's patch fixes the problem. (There is however a non-related test failure in perl 5.16.1; I am working on the bugreport.)


This service is sponsored and maintained by Best Practical Solutions and runs on Perl.org infrastructure.

For issues related to this RT instance (aka "perlbug"), please contact perlbug-admin at perl.org