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
[PATCH] ExtUtils::Constant fix "panic: failed to extend arg stack" #16464
Comments
From @bulk88Created by @bulk88See attached patch. This is a 5.28 blocker IMO. I can't use the perl And it must be a DEBUGGING build (panic check wont be in the binary Since ExtUtils::Constant isn't maintained on CPAN Example of me executing the panic. Platform: perllibs=oldnames.lib kernel32.lib user32.lib gdi32.lib Characteristics of this binary (from libperl): C:\p527\srcnew>perl -d -e"use Loading DB routines from perl5db.pl version 1.53 Enter h or 'h h' for help, or 'perldoc perldebug' for more help. main::(-e:1): use C:\p527\srcnew> Perl Info
|
From @bulk880001-ExtUtils-Constant-fix-panic-failed-to-extend-arg-sta.patchFrom 63b02f14c1e01bf3904d0bf2d6b5061c92ae9822 Mon Sep 17 00:00:00 2001
From: Daniel Dragan <bulk88@hotmail.com>
Date: Tue, 13 Mar 2018 23:38:23 -0400
Subject: [PATCH] ExtUtils::Constant fix "panic: failed to extend arg stack"
"$XS_Constant{$type}" is almost always a 2nd PUSH on stack, but EU::C
only extended by 1, not 2. This mistake didn't become visible until
the panic assert was added 5.27.2
panic: XSUB Compress::Raw::Bzip2::constant (Bzip2.c) failed to extend arg
stack: base=1b13010, sp=1b13020, hwm=1b13018
Numbers in message are from my 64bit perl, so 0x1b13020-0x1b13018=0x8
which is one 64 bit pointer stack slot, which is exactly the mistake that
this patch fixes in EU::C. See RT ticket associated with this commit for
details.
---
cpan/ExtUtils-Constant/lib/ExtUtils/Constant.pm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/cpan/ExtUtils-Constant/lib/ExtUtils/Constant.pm b/cpan/ExtUtils-Constant/lib/ExtUtils/Constant.pm
index 3199ebf..70c7fbc 100644
--- a/cpan/ExtUtils-Constant/lib/ExtUtils/Constant.pm
+++ b/cpan/ExtUtils-Constant/lib/ExtUtils/Constant.pm
@@ -1,6 +1,6 @@
package ExtUtils::Constant;
use vars qw (@ISA $VERSION @EXPORT_OK %EXPORT_TAGS);
-$VERSION = '0.24';
+$VERSION = '0.24_02';
=head1 NAME
@@ -272,7 +272,7 @@ EOT
$xs .= " case PERL_constant_IS$type:\n";
if (length $XS_Constant{$type}) {
$xs .= << "EOT";
- EXTEND(SP, 1);
+ EXTEND(SP, 2);
PUSHs(&PL_sv_undef);
$XS_Constant{$type};
EOT
--
1.8.0.msysgit.0
|
From @jkeenanOn Wed, 14 Mar 2018 04:05:37 GMT, bulk88 wrote:
Did you have this problem with 5.26? If not, are you able to determine the 5.27.x development version at which this problem first appeared? Thank you very much. -- |
The RT System itself - Status changed from 'new' to 'open' |
From @bulk88On Wed, 14 Mar 2018 04:57:00 -0700, jkeenan wrote:
5.26? No. https://perl5.git.perl.org/perl.git/87058c31e9fa350bda8d797127c9c175d0b1a893 is the fault commit if I bisect it, but that commit just reveals/catches the mem overflow that was there since 2001 aka Day 1 of EU::C https://perl5.git.perl.org/perl.git/commitdiff/af6c647ee5aae2406b2bfb66c4fe11a81de75b05 -- |
From @bulk88On Tue, 13 Mar 2018 21:05:37 -0700, bulk88 wrote:
Bump. -- |
@nwc10 - Status changed from 'open' to 'pending release' |
From @nwc10On Wed, Mar 14, 2018 at 07:06:21AM -0700, bulk88 via RT wrote:
Thanks for the patch, now applied, on CPAN (or in the pipeline) and in As you say in the report, the bug is hard to replicate, and I wasn't able Nicholas Clark |
From @xsawyerxOn 04/18/2018 09:20 AM, Nicholas Clark wrote:
This has been on my radar for a while. Thanks, everyone. |
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#132974 (status was 'resolved')
Searchable as RT132974$
The text was updated successfully, but these errors were encountered: