miyagawa/Plack-Middleware-Debug — Issue #11: Memory leak (perl 5.8.8, linux-i386, CentOS 5.5)
Author: karenetheridge
Created: 2011-11-23 20:26:25+00:00
State: open

I cannot install this module on perl5.8.8, due to a memory leak:

CPAN: File::HomeDir loaded ok (v0.86)
CPAN: Storable loaded ok (v2.24)
Reading '/root/.cpan/Metadata'
Database was generated on Mon, 21 Nov 2011 12:27:23 GMT
Running install for module 'Plack::Middleware::Debug'
Running make for M/MI/MIYAGAWA/Plack-Middleware-Debug-0.14.tar.gz
CPAN: Digest::SHA loaded ok (v5.47)
CPAN: Compress::Zlib loaded ok (v1.34)
Checksum for /root/.cpan/sources/authors/id/M/MI/MIYAGAWA/Plack-Middleware-Debug-0.14.tar.gz ok
CPAN: Archive::Tar loaded ok (v1.54)
Plack-Middleware-Debug-0.14/
Plack-Middleware-Debug-0.14/Changes
Plack-Middleware-Debug-0.14/examples/
Plack-Middleware-Debug-0.14/inc/
Plack-Middleware-Debug-0.14/INSTALL
Plack-Middleware-Debug-0.14/lib/
Plack-Middleware-Debug-0.14/Makefile.PL
Plack-Middleware-Debug-0.14/MANIFEST
Plack-Middleware-Debug-0.14/META.yml
Plack-Middleware-Debug-0.14/README
Plack-Middleware-Debug-0.14/README.mkdn
Plack-Middleware-Debug-0.14/share/
Plack-Middleware-Debug-0.14/t/
Plack-Middleware-Debug-0.14/xt/
Plack-Middleware-Debug-0.14/xt/author/
Plack-Middleware-Debug-0.14/xt/author/00_compile.t
Plack-Middleware-Debug-0.14/xt/author/01_perl_critic.t
Plack-Middleware-Debug-0.14/xt/author/02_pod.t
Plack-Middleware-Debug-0.14/xt/author/03_podspell.t
Plack-Middleware-Debug-0.14/xt/author/04_pod_coverage.t
Plack-Middleware-Debug-0.14/xt/author/05_kwalitee.t
Plack-Middleware-Debug-0.14/xt/author/06_yaml_meta.t
Plack-Middleware-Debug-0.14/xt/author/07_portability_files.t
Plack-Middleware-Debug-0.14/xt/author/08_synopsis.t
Plack-Middleware-Debug-0.14/xt/author/09_minimum_version.t
Plack-Middleware-Debug-0.14/xt/author/10_has_version.t
Plack-Middleware-Debug-0.14/xt/author/11_check_changes.t
Plack-Middleware-Debug-0.14/xt/author/12_manifest.t
Plack-Middleware-Debug-0.14/xt/author/perlcriticrc
Plack-Middleware-Debug-0.14/t/01_basic.t
Plack-Middleware-Debug-0.14/t/parameters-leak.t
Plack-Middleware-Debug-0.14/t/utf8.t
Plack-Middleware-Debug-0.14/share/debug_toolbar/
Plack-Middleware-Debug-0.14/share/debug_toolbar/back.png
Plack-Middleware-Debug-0.14/share/debug_toolbar/back_hover.png
Plack-Middleware-Debug-0.14/share/debug_toolbar/close.png
Plack-Middleware-Debug-0.14/share/debug_toolbar/close_hover.png
Plack-Middleware-Debug-0.14/share/debug_toolbar/indicator.png
Plack-Middleware-Debug-0.14/share/debug_toolbar/information.gif
Plack-Middleware-Debug-0.14/share/debug_toolbar/jquery.cookie.js
Plack-Middleware-Debug-0.14/share/debug_toolbar/jquery.js
Plack-Middleware-Debug-0.14/share/debug_toolbar/panel_bg.png
Plack-Middleware-Debug-0.14/share/debug_toolbar/toolbar.css
Plack-Middleware-Debug-0.14/share/debug_toolbar/toolbar.js
Plack-Middleware-Debug-0.14/share/debug_toolbar/toolbar.min.css
Plack-Middleware-Debug-0.14/share/debug_toolbar/toolbar.min.js
Plack-Middleware-Debug-0.14/lib/Plack/
Plack-Middleware-Debug-0.14/lib/Plack/Middleware/
Plack-Middleware-Debug-0.14/lib/Plack/Middleware/Debug/
Plack-Middleware-Debug-0.14/lib/Plack/Middleware/Debug.pm
Plack-Middleware-Debug-0.14/lib/Plack/Middleware/Debug/Base.pm
Plack-Middleware-Debug-0.14/lib/Plack/Middleware/Debug/CatalystLog.pm
Plack-Middleware-Debug-0.14/lib/Plack/Middleware/Debug/DBITrace.pm
Plack-Middleware-Debug-0.14/lib/Plack/Middleware/Debug/Environment.pm
Plack-Middleware-Debug-0.14/lib/Plack/Middleware/Debug/Memory.pm
Plack-Middleware-Debug-0.14/lib/Plack/Middleware/Debug/ModuleVersions.pm
Plack-Middleware-Debug-0.14/lib/Plack/Middleware/Debug/Panel.pm
Plack-Middleware-Debug-0.14/lib/Plack/Middleware/Debug/Parameters.pm
Plack-Middleware-Debug-0.14/lib/Plack/Middleware/Debug/PerlConfig.pm
Plack-Middleware-Debug-0.14/lib/Plack/Middleware/Debug/Response.pm
Plack-Middleware-Debug-0.14/lib/Plack/Middleware/Debug/Session.pm
Plack-Middleware-Debug-0.14/lib/Plack/Middleware/Debug/Timer.pm
Plack-Middleware-Debug-0.14/lib/Plack/Middleware/Debug/TrackObjects.pm
Plack-Middleware-Debug-0.14/inc/Module/
Plack-Middleware-Debug-0.14/inc/Module/AutoInstall.pm
Plack-Middleware-Debug-0.14/inc/Module/Install/
Plack-Middleware-Debug-0.14/inc/Module/Install.pm
Plack-Middleware-Debug-0.14/inc/Module/Install/AutoInstall.pm
Plack-Middleware-Debug-0.14/inc/Module/Install/Base.pm
Plack-Middleware-Debug-0.14/inc/Module/Install/Can.pm
Plack-Middleware-Debug-0.14/inc/Module/Install/Fetch.pm
Plack-Middleware-Debug-0.14/inc/Module/Install/Include.pm
Plack-Middleware-Debug-0.14/inc/Module/Install/Makefile.pm
Plack-Middleware-Debug-0.14/inc/Module/Install/Metadata.pm
Plack-Middleware-Debug-0.14/inc/Module/Install/ReadmeFromPod.pm
Plack-Middleware-Debug-0.14/inc/Module/Install/Repository.pm
Plack-Middleware-Debug-0.14/inc/Module/Install/Share.pm
Plack-Middleware-Debug-0.14/inc/Module/Install/Win32.pm
Plack-Middleware-Debug-0.14/inc/Module/Install/WriteAll.pm
Plack-Middleware-Debug-0.14/examples/dbi/
Plack-Middleware-Debug-0.14/examples/hello-world/
Plack-Middleware-Debug-0.14/examples/hello-world/app.psgi
Plack-Middleware-Debug-0.14/examples/dbi/app.psgi
Plack-Middleware-Debug-0.14/examples/dbi/dump.sql
Plack-Middleware-Debug-0.14/examples/dbi/foo.db
/bin/tar: Read 3584 bytes from -
CPAN: File::Temp loaded ok (v0.22)
CPAN: Parse::CPAN::Meta loaded ok (v1.4401)
CPAN: CPAN::Meta loaded ok (v2.110930)
CPAN: Module::CoreList loaded ok (v2.49)

CPAN.pm: Building M/MI/MIYAGAWA/Plack-Middleware-Debug-0.14.tar.gz

*** Module::AutoInstall version 1.03
*** Checking for Perl dependencies...
*** Since we're running under CPAN, I'll just let it take care
of the dependency's installation later.
[Core Features]
- Test::More ...loaded. (0.96 >= 0.70)
- ExtUtils::MakeMaker ...loaded. (6.59 >= 6.11)
- parent ...loaded. (0.223)
- Plack ...loaded. (0.9984)
- Text::MicroTemplate ...loaded. (0.18 >= 0.15)
- Data::Dump ...loaded. (1.15)
- File::ShareDir ...loaded. (1.03 >= 1.00)
- Class::Method::Modifiers ...loaded. (1.06 >= 1.05)
- Encode ...loaded. (2.33 >= 2.23)
[Module versions panel]
- Module::Versions ...loaded. (0.02 >= 0.01)
*** Module::AutoInstall configuration finished.
Checking if your kit is complete...
Looks good
Writing Makefile for Plack::Middleware::Debug
Could not read metadata file. Falling back to other methods to determine prerequisites
cp lib/Plack/Middleware/Debug/TrackObjects.pm blib/lib/Plack/Middleware/Debug/TrackObjects.pm
cp lib/Plack/Middleware/Debug/Parameters.pm blib/lib/Plack/Middleware/Debug/Parameters.pm
cp lib/Plack/Middleware/Debug/ModuleVersions.pm blib/lib/Plack/Middleware/Debug/ModuleVersions.pm
cp lib/Plack/Middleware/Debug/CatalystLog.pm blib/lib/Plack/Middleware/Debug/CatalystLog.pm
cp lib/Plack/Middleware/Debug/Session.pm blib/lib/Plack/Middleware/Debug/Session.pm
cp lib/Plack/Middleware/Debug/Panel.pm blib/lib/Plack/Middleware/Debug/Panel.pm
cp lib/Plack/Middleware/Debug.pm blib/lib/Plack/Middleware/Debug.pm
cp lib/Plack/Middleware/Debug/Timer.pm blib/lib/Plack/Middleware/Debug/Timer.pm
cp lib/Plack/Middleware/Debug/Memory.pm blib/lib/Plack/Middleware/Debug/Memory.pm
cp lib/Plack/Middleware/Debug/DBITrace.pm blib/lib/Plack/Middleware/Debug/DBITrace.pm
cp lib/Plack/Middleware/Debug/PerlConfig.pm blib/lib/Plack/Middleware/Debug/PerlConfig.pm
cp lib/Plack/Middleware/Debug/Base.pm blib/lib/Plack/Middleware/Debug/Base.pm
cp lib/Plack/Middleware/Debug/Environment.pm blib/lib/Plack/Middleware/Debug/Environment.pm
cp lib/Plack/Middleware/Debug/Response.pm blib/lib/Plack/Middleware/Debug/Response.pm
Manifying blib/man3/Plack::Middleware::Debug::TrackObjects.3pm
Manifying blib/man3/Plack::Middleware::Debug::Parameters.3pm
Manifying blib/man3/Plack::Middleware::Debug::ModuleVersions.3pm
Manifying blib/man3/Plack::Middleware::Debug::Session.3pm
Manifying blib/man3/Plack::Middleware::Debug::CatalystLog.3pm
Manifying blib/man3/Plack::Middleware::Debug.3pm
Manifying blib/man3/Plack::Middleware::Debug::Timer.3pm
Manifying blib/man3/Plack::Middleware::Debug::DBITrace.3pm
Manifying blib/man3/Plack::Middleware::Debug::Memory.3pm
Manifying blib/man3/Plack::Middleware::Debug::Base.3pm
Manifying blib/man3/Plack::Middleware::Debug::PerlConfig.3pm
Manifying blib/man3/Plack::Middleware::Debug::Environment.3pm
Manifying blib/man3/Plack::Middleware::Debug::Response.3pm
MIYAGAWA/Plack-Middleware-Debug-0.14.tar.gz
/usr/bin/make -- OK
CPAN: YAML loaded ok (v0.72)
Running make test
PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'inc', 'blib/lib', 'blib/arch')" t/01_basic.t t/parameters-leak.t t/utf8.t
t/01_basic.t ......... ok

# Failed test 'No leaks in application (leaks 8 == 0)'
# at t/parameters-leak.t line 41.
# got: 8
# expected: 0
# leaked SCALAR(0x8899968) from /usr/lib/perl5/site_perl/5.8.8/Plack/Request.pm line 86.
# 85: my $self = shift;
# 86: $self->env->{'plack.request.query'} ||= Hash::MultiValue->new($self->uri->query_form);
# 87:}
# SV = IV(0x84fbbb8) at 0x8899968
# REFCNT = 1
# FLAGS = (IOK,pIOK)
# IV = 141665604
# leaked SCALAR(0x88eb58c) from /usr/lib/perl5/site_perl/5.8.8/URI.pm line 64.
# 63:
# 64: return $impclass->_init($uri, $scheme);
# 65:}
# SV = IV(0x888f0e0) at 0x88eb58c
# REFCNT = 1
# FLAGS = (IOK,pIOK)
# IV = 143388156
# leaked SCALAR(0x88f4320) from /root/.cpan/build/Plack-Middleware-Debug-0.14-xwQMq7/blib/lib/Plack/Middleware/Debug/Base.pm line 47.
# 46:
# 47: my $panel = Plack::Middleware::Debug::Panel->new;
# 48: $panel->dom_id("plDebug${id}Panel");
# SV = IV(0x888ef14) at 0x88f4320
# REFCNT = 1
# FLAGS = (IOK,pIOK)
# IV = 141015428
# leaked SCALAR(0x88f4260) from /usr/lib/perl5/site_perl/5.8.8/Plack/Request.pm line 117.
# 116: }
# 117: grep { /^(?:HTTP|CONTENT|COOKIE)/i } keys %$env
# 118: );
# SV = IV(0x888edc0) at 0x88f4260
# REFCNT = 1
# FLAGS = (IOK,pIOK)
# IV = 138612472
# leaked SCALAR(0x88f3f0c) from /usr/lib/perl5/site_perl/5.8.8/Text/MicroTemplate.pm line 327.
# 326:sub encoded_string {
# 327: Text::MicroTemplate::EncodedString->new($_[0]);
# 328:}
# SV = IV(0x86e4f98) at 0x88f3f0c
# REFCNT = 1
# FLAGS = (IOK,pIOK)
# IV = 141260364
# leaked SCALAR(0x88f3d68) from /usr/lib/perl5/site_perl/5.8.8/Plack/Test/MockHTTP.pm line 24.
# 23: my $res = try {
# 24: HTTP::Response->from_psgi($app->($env));
# 25: } catch {
# SV = IV(0x888f0e4) at 0x88f3d68
# REFCNT = 1
# FLAGS = (IOK,pIOK)
# IV = 139029260
# leaked SCALAR(0x88f3ca8) from /usr/lib/perl5/site_perl/5.8.8/Plack/Request.pm line 226.
# 225:
# 226: return URI->new($base . $path)->canonical;
# 227:}
# SV = IV(0x86e5104) at 0x88f3ca8
# REFCNT = 1
# FLAGS = (IOK,pIOK)
# IV = 138680420
# leaked SCALAR(0x88f3834) from /usr/lib/perl5/5.8.8/i386-linux-thread-multi/Encode.pm line 127.
# 126: my ( $name, $skip_external ) = @_;
# 127: return __PACKAGE__->getEncoding( $name, $skip_external );
# 128:}
# SV = IV(0x888f0d0) at 0x88f3834
# REFCNT = 1
# FLAGS = (IOK,pIOK)
# IV = 138870508
# Looks like you failed 1 test of 4.
t/parameters-leak.t ..
Dubious, test returned 1 (wstat 256, 0x100)
Failed 1/4 subtests
t/utf8.t ............. ok

Test Summary Report
-------------------
t/parameters-leak.t (Wstat: 256 Tests: 4 Failed: 1)
Failed test: 4
Non-zero exit status: 1
Files=3, Tests=17, 7 wallclock secs ( 0.04 usr 0.01 sys + 6.64 cusr 0.12 csys = 6.81 CPU)
Result: FAIL
Failed 1/3 test programs. 1/17 subtests failed.
make: *** [test_dynamic] Error 255
MIYAGAWA/Plack-Middleware-Debug-0.14.tar.gz
/usr/bin/make test -- NOT OK
//hint// to see the cpan-testers results for installing this module, try:
reports MIYAGAWA/Plack-Middleware-Debug-0.14.tar.gz
Running make install
make test had returned bad status, won't install without force