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
v5.23.1-199-ga5f4850 breaks something badly #14873
Comments
From mat@FreeBSD.orgCreated by mat@FreeBSD.orgAfter v5.23.1-199-ga5f4850, building net-snmp (not Net::SNMP) with the Perl ERROR from evaluation of /wrkdirs/usr/ports/net-mgmt/net-snmp/work/net-snmp-5.7.3/perl/OID/Makefile.PL: panic: attempt to copy freed scalar 8020a16d8 to 8030eced0 at /usr/local/lib/perl5/5.23/Carp.pm line 228. I've git bisect'ed it, and v5.23.1-198-g0ba9d88 works fine. The full build log for net-snmp is available there: https://pkg.absolight.fr/data/10amd64-aragorn-perl5-devel/20150826T144538Z/logs/net-snmp-5.7.3_8.log Perl Info
|
From mat@cpan.orgAttaching the log file, in case it helps. |
The RT System itself - Status changed from 'new' to 'open' |
From @iabynOn Wed, Aug 26, 2015 at 06:14:09AM -0700, via RT wrote:
Well this was a bit of weird one. TL;DR: the bisect is red herring: the problem has always been there. It's In net-snmp the is a subdir called perl/, which has a Makefile.PL, Part of the build process does the equivalent of $ cd perl/ That Makefile.PL is responsible (via lib/ExtUtils::MakeMaker) for Both perl/Makefile.PL and perl/ASN/Makefile.PL have code like the %MakeParams = InitMakeParams(); sub InitMakeParams { Note also that %MakeParams is a global (package) var rather than being You can see something similar in the following: %h = qw(a 1 b 2); sub f { which outputs: at /home/davem/tmp/p line 10. Note that the second arg has changed from "1" to an empty string, due to Then there is the fact that MakeMaker has this bit of code: if ( Carp::longmess("") =~ /runsubdirpl/s ){ By calling Carp::longmess(), it creates a full backtrack, including the The only change the bisected perl commit made is that it sometimes alters The quick fix for net-snmp is to change each Makefile.PL so that -- |
From @iabynOn Tue, Sep 01, 2015 at 02:52:32PM +0100, Dave Mitchell wrote:
Although thinking further, I wonder whether, for the stack not refcounted It would mean an extra overhead on sub entry and exit of bumping and then Another possible thing to do as well / instead would be to make the -- |
From @rjbs* Dave Mitchell <davem@iabyn.com> [2015-09-01T09:52:32]
Thanks for the detailed explanation, which was useful and interesting! -- |
From @rjbs* Dave Mitchell <davem@iabyn.com> [2015-09-01T11:11:43]
Both the options that you gave sound interesting and helpful, but I worry about -- |
From @iabynOn Tue, Sep 01, 2015 at 09:14:22PM -0400, Ricardo Signes wrote:
I'll try this at some point and report back with real numbers. -- |
From mat@cpan.orgLe Mar 01 Sep 2015 06:53:02, davem a écrit :
Thanks for the long explanation, it was enlightening. I've continued patching net-snmp to have it build with 5.23 (first fix was because of v5.23.1-46-g16d89be) https://svnweb.freebsd.org/ports/head/net-mgmt/net-snmp/files/patch-perl5.23?view=markup and it works again. Now, when doing Perl stuff, whatever pure-Perl code I have, I do not expect it, ever, to tell me that Perl is panic'ing because of some operation it's doing under the hood, whatever stupidity I write :-) |
From @rurban2015-09-01 17:11 GMT+02:00 Dave Mitchell <davem@iabyn.com>:
It would help to use proper technical wording. This already confused me once. You cannot unweak those elements without rewriting most XS modules out
No.
-- Reini |
From @iabynOn Mon, Sep 07, 2015 at 12:57:27AM +0200, Reini Urban wrote:
Well, since "weak reference" in perl already has a specific extra meaning
I don't understand what you're referring to here. XS calls don't use @_.
I think you are conflating two issues: the current overhead of But as I said earlier, at some point I will benchmark it and convert idle -- |
From @rurban
Yes, probably. But weak is still weak.
I know. That’s why I got confused all over. Coming from the real world into the isolated perl5 circle is always a problem when
I meant SP. We have 3 stacks and a copy of it.
Ok. That’s trivial.
I merely suggested that you will finally stop using @_, not making it even more slower. Once you have done that and won 100%, you can come back and steal 10% to BTW: You did the same in the regex engine where a fundamental problem was solved by |
From @iabynOn Thu, Sep 17, 2015 at 03:54:02PM +0200, Reini Urban wrote:
Well, if I was being pedantically correct, I would have to refer to the
Yes, which is rather why I suggested it.
Well yes, it's always been my intention to remove the overhead of setting Also, you keep claiming 10%, whereas I keep pointing out that we don't know
Since this is completely unrelated to the subject at hand, please start a -- |
Migrated from rt.perl.org#125907 (status was 'open')
Searchable as RT125907$
The text was updated successfully, but these errors were encountered: