Skip Menu |

This queue is for tickets about the SWISH-3 CPAN distribution.

Report information
The Basics
Id: 132645
Status: new
Priority: 0/
Queue: SWISH-3

People
Owner: Nobody in particular
Requestors: ANDK [...] cpan.org
Cc:
AdminCc:

Bug Information
Severity: (no value)
Broken in: 1.000015
Fixed in: (no value)



Subject: panic: free from wrong pool, 2!=55866017e260.
Sample fail report: http://www.cpantesters.org/cpan/report/80f00ae0-981a-11ea-993b-9b8c7a8a960d More of similar reports in the matrix: http://matrix.cpantesters.org/?dist=SWISH-3+1.000015 Running the test in verbose mode: % make test TEST_FILES=t/01slurp.t TEST_VERBOSE=1 [CPANSHELL] "/home/sand/src/perl/repoperls/installed-perls/host/k93msid/v5.31.11-25-g033d4d869f/29fb/bin/perl" -MExtUtils::Command::MM -e 'cp_nonempty' -- 3.bs blib/arch/auto/SWISH/3/3.bs 644 PERL_DL_NONLAZY=1 "/home/sand/src/perl/repoperls/installed-perls/host/k93msid/v5.31.11-25-g033d4d869f/29fb/bin/perl" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(1, 'blib/lib', 'blib/arch')" t/01slurp.t t/01slurp.t .. 1..6 ok 1 - use SWISH::3; ok 2 - new object ok 3 - slurp file ok 4 - slurp gz file ok 5 - gzipped buf eq buf ok 6 - croak on no stat panic: free from wrong pool, 2!=55866017e260. Dubious, test returned 22 (wstat 5632, 0x1600) All 6 subtests passed Test Summary Report ------------------- t/01slurp.t (Wstat: 5632 Tests: 6 Failed: 0) Non-zero exit status: 22 Files=1, Tests=6, 0 wallclock secs ( 0.02 usr 0.01 sys + 0.05 cusr 0.03 csys = 0.11 CPU) Result: FAIL It seems that for any perl >= 5.20 this fail can be reproduced by configuring with -Dusethreads and -DEBUGGING=both. Let me know if you need further details.
One detail more: the described test failure has a first appearance in perl v5.17.0-515-g186a5ba82d. This is the relevant commit: commit 186a5ba82d5844e9713475c494fcd6682968609f Author: Father Chrysostomos <sprout@cpan.org> Date: Wed Jun 13 22:46:40 2012 -0700 Don’t create pads for sub stubs Two code paths, sv_2cv (for \&name) and get_cvn_flags (for &{"name"}()) were using start_subparse and newATTRSUB to create a subroutine stub, which is what usually happens for Perl subs (with op trees). This resulted in subs with unused pads attached to them, because start_subparse sets up the pad, which must be accessible dur- ing parsing. One code path, gv_init, which (among other things) reifies a GV after a sub declaration (like ‘sub foo;’, which for efficiency doesn’t create a CV), created the subroutine stub itself, without using start_subparse/newATTRSUB. This commit takes the code from gv_init, makes it more generic so it can apply to the other two cases, puts it in a new function called newSTUB, and makes all three locations call it. Now stub creation should be faster and use less memory. Additionally, this commit causes sv_2cv and get_cvn_flags to bypass bug #107370 (glob stringification not round-tripping properly). They used to stringify the GV and pass the string to newATTRSUB (wrapped in an op, of all things) for it to look up the GV again. While bug been fixed, as it was a side effect of sv_2cv triggering bug #107370.