Skip Menu |

This queue is for tickets about the only CPAN distribution.

Report information
The Basics
Id: 34665
Status: open
Priority: 0/
Queue: only

People
Owner: Nobody in particular
Requestors: imacat [...] mail.imacat.idv.tw
Cc:
AdminCc:

Bug Information
Severity: Critical
Broken in: 0.28
Fixed in: (no value)



Subject: Bottomless Recursion and Segmentation Fault in t/13ooapi.t
Dear Ingy döt Net, Hi. This is imacat from Taiwan. I found that, when doing "make test" under Perl 5.8.8, your only-0.28 gets into a bottomless deep recursion at t/13ooapi.t, which eats up all the memory and dies. If I tries to test t/13ooapi.t alone, it dies with segmentation fault after bottomless deep recursion. PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 17695 imacat 25 0 1196m 1.1g 1800 R 98 57.9 0:24.41 perl The terminal log is attached below. I guess this is not right. Maybe you should take some time to look into it. Please fix this issue. Your only-0.28 is one of the prerequisite modules of Locale-KeyedText-v1.73.0, Rosetta-Utility-SQLParser-v0.3.0 and Rosetta-v0.724.0. If your only-0.28 does not work, these depending modules will not work, either. Please tell me if you need any more information, or if I could be of any help. Thank you. imacat@rinse tmp/only-0.28 % perl -v This is perl, v5.8.8 built for x86_64-linux-thread-multi-ld Copyright 1987-2006, Larry Wall Perl may be copied only under the terms of either the Artistic License or the GNU General Public License, which may be found in the Perl 5 source kit. Complete documentation for Perl, including FAQ lists, should be found on this system using "man perl" or "perldoc perl". If you have access to the Internet, point your browser at http://www.perl.org/, the Perl Home Page. imacat@rinse tmp/only-0.28 % perl Makefile.PL "only.pm" has special functionality that allows you to install multiple versions of any Perl module. In order to do this, it installs the modules in a separate directory than the rest of your modules. You need to decide which directory the modules will be installed in. This value will be stored in only::config so that only.pm will know where to look in order to load special versions of a module. The suggested place to install special versions of Perl modules is: /usr/lib/perl5/version/5.8.8 Do you want to use the "suggested" directory (y/n)? [y] Checking if your kit is complete... Looks good Writing Makefile for only imacat@rinse tmp/only-0.28 % make cp lib/only/config.pm blib/lib/only/config.pm cp lib/only.pm blib/lib/only.pm cp lib/only/install.pm blib/lib/only/install.pm Manifying blib/man3/only.3 Manifying blib/man3/only::install.3 imacat@rinse tmp/only-0.28 % make test t/00config...............ok t/01install..............ok t/02basic................Loaded _Foo::Bar, but version (v1.00) did not satisfy the requirement: use only _Foo::Bar => '0.50'; at t/02basic.t line 6 BEGIN failed--compilation aborted at t/02basic.t line 6. # Looks like your test died before it could output anything. t/02basic................ Dubious, test returned 255 (wstat 65280, 0xff00) Failed 1/1 subtests t/03range................Loaded _Foo::Bar, but version (v1.00) did not satisfy the requirement: use only _Foo::Bar => '0.50-0.59 !0.50'; at t/03range.t line 6 BEGIN failed--compilation aborted at t/03range.t line 6. # Looks like your test died before it could output anything. t/03range................ Dubious, test returned 255 (wstat 65280, 0xff00) Failed 4/4 subtests t/04clobber..............Loaded _Foo::Bar, but version (v1.00) did not satisfy the requirement: use only _Foo::Bar => '0.55'; at t/04clobber.t line 6 BEGIN failed--compilation aborted at t/04clobber.t line 6. # Looks like your test died before it could output anything. t/04clobber.............. Dubious, test returned 255 (wstat 65280, 0xff00) Failed 7/7 subtests t/05site.................Use of uninitialized value in pattern match (m//) at t/05site.t line 7. t/05site.................1/4 Use of uninitialized value in pattern match (m//) at t/05site.t line 10. t/05site.................ok t/06require..............Loaded _Foo::Bar, but version (v1.00) did not satisfy the requirement: use only _Foo::Bar => '0.60'; at t/06require.t line 6 BEGIN failed--compilation aborted at t/06require.t line 6. # Looks like your test died before it could output anything. t/06require.............. Dubious, test returned 255 (wstat 65280, 0xff00) Failed 2/2 subtests t/07inc..................Loaded _Foo::Bar, but version (v1.00) did not satisfy the requirement: use only _Foo::Bar => '0.60'; at t/07inc.t line 6 BEGIN failed--compilation aborted at t/07inc.t line 6. # Looks like your test died before it could output anything. t/07inc.................. Dubious, test returned 255 (wstat 65280, 0xff00) Failed 5/5 subtests t/08use..................ok t/09alternate............1/4 # Failed test at t/09alternate.t line 25. # got: 'Can't locate desired version of _Boom in @INC: # - only:_Boom:/home/imacat/tmp/only-0.28/t/alternate # - t/site # - t/lib # - t # - inc # - /home/imacat/tmp/only-0.28/inc # - /home/imacat/tmp/only-0.28/blib/lib # - /home/imacat/tmp/only-0.28/blib/arch # - /home/imacat/lib/perl5 # - /usr/lib/perl5/5.8.8/x86_64-linux-thread-multi-ld # - /usr/lib/perl5/5.8.8 # - /usr/lib/perl5/site_perl/5.8.8/x86_64-linux-thread-multi-ld # - /usr/lib/perl5/site_perl/5.8.8 # - /usr/lib/perl5/site_perl # - /usr/share/perl5 # - . # at (eval 23) line 1 # BEGIN failed--compilation aborted at (eval 23) line 2. # ' # expected: '' # Failed test at t/09alternate.t line 26. # got: undef # expected: '0.77' # Failed test at t/09alternate.t line 27. # got: undef # expected: 'Bada-Boom' # Looks like you failed 3 tests of 4. t/09alternate............ Dubious, test returned 3 (wstat 768, 0x300) Failed 3/4 subtests t/10install_version......1/4 # Failed test at t/10install_version.t line 14. # got: 'Can't locate desired version of _Boom in @INC: # - only:_Boom:/home/imacat/tmp/only-0.28/t/alternate # - t/site # - t/lib # - t # - inc # - /home/imacat/tmp/only-0.28/inc # - /home/imacat/tmp/only-0.28/blib/lib # - /home/imacat/tmp/only-0.28/blib/arch # - /home/imacat/lib/perl5 # - /usr/lib/perl5/5.8.8/x86_64-linux-thread-multi-ld # - /usr/lib/perl5/5.8.8 # - /usr/lib/perl5/site_perl/5.8.8/x86_64-linux-thread-multi-ld # - /usr/lib/perl5/site_perl/5.8.8 # - /usr/lib/perl5/site_perl # - /usr/share/perl5 # - . # at (eval 23) line 1 # BEGIN failed--compilation aborted at (eval 23) line 2. # ' # expected: '' # Failed test at t/10install_version.t line 15. # got: undef # expected: '0.77' # Failed test at t/10install_version.t line 16. # got: undef # expected: 'Bada-Boom' # Looks like you failed 3 tests of 4. t/10install_version...... Dubious, test returned 3 (wstat 768, 0x300) Failed 3/4 subtests t/11fail_msg.............ok t/12set_versionlib.......1/3 # Failed test at t/12set_versionlib.t line 15. # got: 'Can't locate desired version of _Boom in @INC: # - only:_Boom:/home/imacat/tmp/only-0.28/t/alternate # - t/site # - t/lib # - t # - inc # - /home/imacat/tmp/only-0.28/inc # - /home/imacat/tmp/only-0.28/blib/lib # - /home/imacat/tmp/only-0.28/blib/arch # - /home/imacat/lib/perl5 # - /usr/lib/perl5/5.8.8/x86_64-linux-thread-multi-ld # - /usr/lib/perl5/5.8.8 # - /usr/lib/perl5/site_perl/5.8.8/x86_64-linux-thread-multi-ld # - /usr/lib/perl5/site_perl/5.8.8 # - /usr/lib/perl5/site_perl # - /usr/share/perl5 # - . # at (eval 15) line 1 # BEGIN failed--compilation aborted at (eval 15) line 2. # ' # expected: '' # Failed test at t/12set_versionlib.t line 16. # got: undef # expected: '0.77' # Failed test at t/12set_versionlib.t line 17. # got: undef # expected: 'Bada-Boom' # Looks like you failed 3 tests of 3. t/12set_versionlib....... Dubious, test returned 3 (wstat 768, 0x300) Failed 3/3 subtests t/13ooapi................1/11 # Failed test at t/13ooapi.t line 20. # got: '1.00' # expected: '0.50' # Failed test at t/13ooapi.t line 22. # 't/site/_Foo/Bar.pm' # doesn't match '(?-xism:version)' # Failed test at t/13ooapi.t line 23. Use of uninitialized value in pattern match (m//) at t/13ooapi.t line 24. # Failed test at t/13ooapi.t line 24. # undef # doesn't match '(?-xism:version)' Deep recursion on subroutine "only::INC" at /usr/lib/perl5/5.8.8/AutoLoader.pm line 27. Deep recursion on subroutine "only::search" at /home/imacat/tmp/only-0.28/blib/lib/only.pm line 131. Deep recursion on subroutine "only::check_version" at /home/imacat/tmp/only-0.28/blib/lib/only.pm line 166. Deep recursion on subroutine "AutoLoader::AUTOLOAD" at /home/imacat/tmp/only-0.28/blib/lib/only.pm line 367. make: *** wait: No child processes. Stop. make: *** Waiting for unfinished jobs.... make: *** wait: No child processes. Stop. imacat@rinse tmp/only-0.28 % perl -Iblib/lib -Iblib/arch t/13ooapi.t 1..11 ok 1 not ok 2 # Failed test at t/13ooapi.t line 20. # got: '1.00' # expected: '0.50' ok 3 not ok 4 # Failed test at t/13ooapi.t line 22. # 't/site/_Foo/Bar.pm' # doesn't match '(?-xism:version)' not ok 5 # Failed test at t/13ooapi.t line 23. Use of uninitialized value in pattern match (m//) at t/13ooapi.t line 24. not ok 6 # Failed test at t/13ooapi.t line 24. # undef # doesn't match '(?-xism:version)' Deep recursion on subroutine "only::INC" at /usr/lib/perl5/5.8.8/AutoLoader.pm line 27. Deep recursion on subroutine "only::search" at blib/lib/only.pm line 131. Deep recursion on subroutine "only::check_version" at blib/lib/only.pm line 166. Deep recursion on subroutine "AutoLoader::AUTOLOAD" at blib/lib/only.pm line 367. zsh: segmentation fault perl -Iblib/lib -Iblib/arch t/13ooapi.t imacat@rinse tmp/only-0.28 %
Hi. This is imacat from Taiwan. I tried to investigate further. It seems that, when running "require _Foo::Bar" in your t/13ooapi.t and doing "$version >= $lower and $version <= $upper" at check_version(), it enters an infinite recursion revoking AUTOLOAD which calls check_version() itself. Hope that this helps. Please tell me if you need any more information, or if I could be of any help. Thank you. By the way, please delete this rt.cpan.org bug #20573: Let MisterClipping do the clipping! http://rt.cpan.org/Ticket/Display.html?id=20573 It is obviously a spam.