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
Bizarre array copy: ??? #6957
Comments
From smurf@noris.deCreated by smurf@noris.deI have a moderately complex program which dies thusly: Carp::caller_info(/usr/share/perl/5.8.2/Carp/Heavy.pm:39): DB<61> c I don't know how to figure out what the hell happens here, nor how to Perl Info
|
From jcromie@divsol.comMatthias Urlichs (via RT) wrote:
start with perldoc splain. NAME splain - standalone program to do the same thing SYNOPSIS use diagnostics; enable diagnostics; Aa a program: perl program 2>diag.out you should also inspect the stack, some evidence is likely to be there. DB<61> T and FWIW, 'moderately complex' may be true, but that doesnt mean you can |
From smurf@smurf.noris.deHi, Jim Cromie via RT:
Verbose diagnostics change nothing. :-/
I wish. After the 275th call to the function in question, I got a stack
True. However, some problems have simple and/or solutions, so I But since this bug doesn't, here it is. #!/usr/bin/perl # This program forces a "bizarre ARRAY copy" crash at Carp::Heavy, line 39. use Carp; sub indirect(&) { our $the_crash; # For the record: de-commenting this doesn't change anything. sub DoFn() { ## a different error(!) results if you delete the next line: sub Obj::statement { my $again; $self = bless { }, $pack; Obj::get_obj(); __END__ -- |
From jcromie@divsol.comMatthias Urlichs wrote:
I get same error as you do, on multiple perl versions. [jimc@harpo perl-core]$ perl5.8.2-nothreads bizarre.pl.orig WRT to your code; did you use -w ? :-O you use an odd packaging style, the keyword 'package' does not occur at You also use indirect syntax, including (best that I can tell) a hop I suspect that your troubles might be related to these 2 things; wrt isolating whats currently going on, I'll keep your code on hand, maybe I can follow up on this later. |
From smurf@smurf.noris.deHi, Jim Cromie:
Keep in mind that this was condensed from a multiple-package codebase
The original source is much cleaner and, AFAICT, doesn't have these
Possibly. Unfortunately, it's not as easy as "Don't do that, then".
Hmmm. [ testing ] If you replace "DoFn" with "Obj::DoFn", in my original example, the error Ouch. I can try to re-condense the original problem to something that still One additional datapoint: Perl 5.6 displayed this error rarely, i.e. -- |
@nwc10 - Status changed from 'new' to 'open' |
From @iabynThis can be reduced to the following, which is another example our $freed; sub f { f($freed); |
@iabyn - Status changed from 'open' to 'stalled' |
From @cpansproutOn Sat Sep 11 03:28:49 2010, davem wrote:
This does not crash for me in blead (v5.25.3-63-gd03b2e8). -- Father Chrysostomos |
The RT System itself - Status changed from 'stalled' to 'open' |
From @cpansproutOn Fri Jul 29 13:34:28 2016, sprout wrote:
s/crash/die/; Bisect: ba4a1c0 is the first bad commit [perl #97020] Carp (actually caller) leaking memory But that was when the reduced case stopped dying. The original script still dies in blead. -- Father Chrysostomos |
From @cpansproutOn Fri Jul 29 14:15:36 2016, sprout wrote:
Another reduced version, which still dies in blead: #!/usr/bin/perl sub DoFn { $self; DoFn( $the_crash ); __END__ -- Father Chrysostomos |
Still failing. |
Migrated from rt.perl.org#24589 (status was 'open')
Searchable as RT24589$
The text was updated successfully, but these errors were encountered: