-
Notifications
You must be signed in to change notification settings - Fork 560
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Assertion Failure: Perl_sv_grow (sv.c:1587) #15613
Comments
From @geeknikTriggered in Perl v5.25.5 (v5.25.4-130-g7aa7bbc). ./perl -e '$^D=X^S^C,map%::,::::' perl: sv.c:1587: char *Perl_sv_grow(SV *const, STRLEN): Assertion `!((((_svcur)->sv_flags & (0x00004000|0x00008000)) == 0x00008000) && (((svtype)((_svcur)->sv_flags & 0xff)) == SVt_PVGV || ((svtype)((_svcur)->sv_flags & 0xff)) == SVt_PVLV))' failed. |
From @cpansproutOn Sun Sep 18 12:43:57 2016, brian.carpenter@gmail.com wrote:
Slightly less exotic: $ ./perl -DH -e 'map %::, "::::"' About a tenth of the time it gives me: Modification of a read-only value attempted at -e line 1. instead of: Assertion failed: (!isGV_with_GP(_svcur)), function Perl_sv_grow, file sv.c, line 1587. That may be due to hash randomisation. -- Father Chrysostomos |
The RT System itself - Status changed from 'new' to 'open' |
From @iabynOn Sun, Sep 18, 2016 at 09:51:32PM -0700, Father Chrysostomos via RT wrote:
-DH is very weird. DEBUG_H is used in exactly one place in core, while ((entry = hv_iternext(keys))) { Note that it actually *corrupts* every value stored in the hash, replacing $ perl -DH -e'%h=qw(a 1 b 2 c 3); @a = %h; print "[$_]\n" for @a' The bug in this ticket is that its trying to coerce a glob or a RO value I can't think that the current behaviour of -DH is intentional; perhaps I can't see any use for this insane behaviour. So I propose that -DH -- |
From @arcDave Mitchell <davem@iabyn.com> wrote:
Changing the value in the hash looks like it was an unnoticed commit b6429b1 make \(%foo) return refs to values (not copies of values) p4raw-id: //depot/perl@1819 Inline Patchdiff --git a/doop.c b/doop.c
index c6270e44f4..a3663f9d1d 100644
--- a/doop.c
+++ b/doop.c
@@ -1067,10 +1067,9 @@ do_kv(ARGSproto)
if (dokeys)
XPUSHs(hv_iterkeysv(entry)); /* won't clobber stack_sp */
if (dovalues) {
- tmpstr = sv_newmortal();
PUTBACK;
- sv_setsv(tmpstr,realhv ?
- hv_iterval(hv,entry) : avhv_iterval((AV*)hv,entry));
+ tmpstr = realhv ?
+ hv_iterval(hv,entry) : avhv_iterval((AV*)hv,entry);
DEBUG_H(sv_setpvf(tmpstr, "%lu%%%d=%lu",
(unsigned long)HeHASH(entry),
HvMAX(keys)+1,
Before that, DEBUG_H did, as you surmise, merely print every hash
I agree. Even if this were fixed, -DH would produce overwhelmingly -- |
From @demerphqOn 21 March 2017 at 12:40, Aaron Crane <arc@cpan.org> wrote:
If we need to debug these things we dont need a -DH flag to do it. Yves -- |
From @iabynOn Tue, Mar 21, 2017 at 10:54:02AM +0000, Dave Mitchell wrote:
Now removed with v5.27.0-129-gfcd573e -- |
@iabyn - Status changed from 'open' to 'pending release' |
From @khwilliamsonThank you for filing this report. You have helped make Perl better. With the release yesterday of Perl 5.28.0, this and 185 other issues have been Perl 5.28.0 may be downloaded via: If you find that the problem persists, feel free to reopen this ticket. |
@khwilliamson - Status changed from 'pending release' to 'resolved' |
Migrated from rt.perl.org#129300 (status was 'resolved')
Searchable as RT129300$
The text was updated successfully, but these errors were encountered: