develooper Front page | perl.perl5.porters | Postings from February 2015

[perl #123849] -Do can't survive main stash clear

From:
Hugo van der Sanden
Date:
February 16, 2015 17:04
Subject:
[perl #123849] -Do can't survive main stash clear
Message ID:
rt-4.0.18-19852-1424106236-9.123849-75-0@perl.org
# New Ticket Created by  Hugo van der Sanden 
# Please include the string:  [perl #123849]
# in the subject line of all future correspondence about this issue. 
# <URL: https://rt.perl.org/Ticket/Display.html?id=123849 >


AFL (<http://lcamtuf.coredump.cx/afl/>) finds this:

% ./miniperl -Do -e '%:: = ()'
(-e:0)  sv_upgrade clearing PL_stashcache
(-e:0)  sv_upgrade clearing PL_stashcache
(-e:0)  sv_upgrade clearing PL_stashcache
(-e:0)  sv_upgrade clearing PL_stashcache
(-e:0)  sv_upgrade clearing PL_stashcache
(-e:2)  Looking for method DESTROY in package IO::File
(-e:2)  Looking for method DESTROY in package UNIVERSAL
(-e:2)  Looking for method AUTOLOAD in package IO::File
(-e:2)  Looking for method AUTOLOAD in package UNIVERSAL

EXECUTING...

(-e:1)  gp_free clearing PL_stashcache for 'PerlIO'
(-e:1)  miniperl: sv.c:2963: Perl_sv_2pv_flags: Assertion `((svtype)((sv)->sv_flags & 0xff)) != SVt_PVAV && ((svtype)((sv)->sv_flags & 0xff)) != SVt_PVHV && ((svtype)((sv)->sv_flags & 0xff)) != SVt_PVFM' failed.
Aborted (core dumped)
% 

(That started off as: -e '%::=$^D=o'.)

Not sure how much we care about this, but it might be a symptom of something nastier.

(gdb) where
#0  0x00007ffff72edbb9 in __GI_raise (sig=sig@entry=6)
    at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
#1  0x00007ffff72f0fc8 in __GI_abort () at abort.c:89
#2  0x00007ffff72e6a76 in __assert_fail_base (
    fmt=0x7ffff7438370 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", 
    assertion=assertion@entry=0x7b3148 "((svtype)((sv)->sv_flags & 0xff)) != SVt_PVAV && ((svtype)((sv)->sv_flags & 0xff)) != SVt_PVHV && ((svtype)((sv)->sv_flags & 0xff)) != SVt_PVFM", file=file@entry=0x7b0814 "sv.c", 
    line=line@entry=2963, 
    function=function@entry=0x7ccd80 <__PRETTY_FUNCTION__.15222> "Perl_sv_2pv_flags") at assert.c:92
#3  0x00007ffff72e6b22 in __GI___assert_fail (
    assertion=0x7b3148 "((svtype)((sv)->sv_flags & 0xff)) != SVt_PVAV && ((svtype)((sv)->sv_flags & 0xff)) != SVt_PVHV && ((svtype)((sv)->sv_flags & 0xff)) != SVt_PVFM", file=0x7b0814 "sv.c", line=2963, 
    function=0x7ccd80 <__PRETTY_FUNCTION__.15222> "Perl_sv_2pv_flags")
    at assert.c:101
#4  0x000000000059da14 in Perl_sv_2pv_flags (sv=0xa553d0, lp=0x7fffffffd3a8, 
    flags=34) at sv.c:2962
#5  0x00000000005db25d in Perl_sv_vcatpvfn_flags (sv=0xa55a00, 
    pat=0x7c40d0 "sv_clear clearing PL_stashcache for '%-p'\n", patlen=42, 
    args=0x7fffffffd9d8, svargs=0x0, svmax=0, maybe_tainted=0x0, flags=0)
    at sv.c:11451
#6  0x00000000005d98a6 in Perl_sv_vsetpvfn (sv=0xa55a00, 
    pat=0x7c40d0 "sv_clear clearing PL_stashcache for '%-p'\n", patlen=42, 
    args=0x7fffffffd9d8, svargs=0x0, svmax=0, maybe_tainted=0x0) at sv.c:10739
#7  0x00000000005d16d1 in Perl_vnewSVpvf (
    pat=0x7c40d0 "sv_clear clearing PL_stashcache for '%-p'\n", 
    args=0x7fffffffd9d8) at sv.c:9372
#8  0x00000000006da6eb in PerlIO_vprintf (f=0xa4f390, 
    fmt=0x7c40d0 "sv_clear clearing PL_stashcache for '%-p'\n", 
    ap=0x7fffffffda88) at perlio.c:4970
#9  0x00000000006c5e59 in Perl_vdeb (
    pat=0x7c40d0 "sv_clear clearing PL_stashcache for '%-p'\n", 
    args=0x7fffffffda88) at deb.c:73
#10 0x00000000006c5aa1 in Perl_deb (
    pat=0x7c40d0 "sv_clear clearing PL_stashcache for '%-p'\n") at deb.c:51
#11 0x00000000005c27fb in Perl_sv_clear (orig_sv=0xa553d0) at sv.c:6621
#12 0x00000000005c54ae in Perl_sv_free2 (sv=0xa553d0, rc=1) at sv.c:7028
#13 0x0000000000450b8a in S_SvREFCNT_dec (sv=0xa553d0) at inline.h:166
#14 0x000000000046541c in Perl_gp_free (gv=0xa553b8) at gv.c:2546
#15 0x00000000005c3446 in Perl_sv_clear (orig_sv=0xa553b8) at sv.c:6680
#16 0x00000000005c54ae in Perl_sv_free2 (sv=0xa553b8, rc=1) at sv.c:7028
#17 0x00000000005628bd in S_SvREFCNT_dec (sv=0xa553b8) at inline.h:166
#18 0x00000000005673b7 in S_hfreeentries (hv=0xa41fb0) at hv.c:1742
#19 0x0000000000566de5 in Perl_hv_clear (hv=0xa41fb0) at hv.c:1642
#20 0x000000000057b6a1 in Perl_pp_aassign () at pp_hot.c:1146
#21 0x000000000052a13d in Perl_runops_debug () at dump.c:2231
#22 0x00000000004098c7 in S_run_body (oldscope=1) at perl.c:2423
#23 0x0000000000408f0b in perl_run (my_perl=0xa40010) at perl.c:2346
#24 0x00000000004508d1 in main (argc=4, argv=0x7fffffffe638, 
    env=0x7fffffffe660) at miniperlmain.c:122

Hugo




nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About