This queue is for tickets about the CPAN CPAN distribution.

Report information
The Basics
Id:
57854
Status:
resolved
Priority:
Low/Low
Queue:

People
Owner:
Nobody in particular
Requestors:
frank.wiegand [...] gmail.com
Cc:
AdminCc:

BugTracker
Severity:
(no value)
Broken in:
1.94_57
Fixed in:
(no value)



Subject: »perl -MCPAN -eshell« fails
My CPAN (1.94_57) shell does not start: $ perl -MCPAN -eshell Terminal does not support AddHistory. Can't use an undefined value as a symbol reference at /home/fw/perl5/lib/perl5/CPAN.pm line 508. $ perl -V Summary of my perl5 (revision 5 version 10 subversion 0) configuration: Platform: osname=linux, osvers=2.6.26-2-amd64, archname=i486-linux-gnu-thread-multi uname='linux puccini 2.6.26-2-amd64 #1 smp fri aug 14 07:12:04 utc 2009 i686 gnulinux ' config_args='-Dusethreads -Duselargefiles -Dccflags=-DDEBIAN -Dcccdlflags=-fPIC -Darchname=i486-linux-gnu -Dprefix=/usr - Dprivlib=/usr/share/perl/5.10 -Darchlib=/usr/lib/perl/5.10 -Dvendorprefix=/usr -Dvendorlib=/usr/share/perl5 - Dvendorarch=/usr/lib/perl5 -Dsiteprefix=/usr/local -Dsitelib=/usr/local/share/perl/5.10.0 -Dsitearch=/usr/local/lib/perl/5.10.0 - Dman1dir=/usr/share/man/man1 -Dman3dir=/usr/share/man/man3 -Dsiteman1dir=/usr/local/man/man1 -Dsiteman3dir=/usr/local/man/man3 - Dman1ext=1 -Dman3ext=3perl -Dpager=/usr/bin/sensible-pager -Uafs -Ud_csh -Ud_ualarm -Uusesfio -Uusenm -DDEBUGGING=-g -Doptimize=-O2 - Duseshrplib -Dlibperl=libperl.so.5.10.0 -Dd_dosuid -des' hint=recommended, useposix=true, d_sigaction=define useithreads=define, usemultiplicity=define useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef use64bitint=undef, use64bitall=undef, uselongdouble=undef usemymalloc=n, bincompat5005=undef Compiler: cc='cc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE - D_FILE_OFFSET_BITS=64', optimize='-O2 -g', cppflags='-D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fno-strict-aliasing -pipe -I/usr/local/include' ccversion='', gccversion='4.3.2', gccosandvers='' intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234 d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12 ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8 alignbytes=4, prototype=define Linker and Libraries: ld='cc', ldflags =' -L/usr/local/lib' libpth=/usr/local/lib /lib /usr/lib /usr/lib64 libs=-lgdbm -lgdbm_compat -ldb -ldl -lm -lpthread -lc -lcrypt perllibs=-ldl -lm -lpthread -lc -lcrypt libc=/lib/libc-2.7.so, so=so, useshrplib=true, libperl=libperl.so.5.10.0 gnulibc_version='2.7' Dynamic Linking: dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E' cccdlflags='-fPIC', lddlflags='-shared -O2 -g -L/usr/local/lib' Characteristics of this binary (from libperl): Compile-time options: MULTIPLICITY PERL_DONT_CREATE_GVSV PERL_IMPLICIT_CONTEXT PERL_MALLOC_WRAP USE_ITHREADS USE_LARGE_FILES USE_PERLIO USE_REENTRANT_API Built under linux Compiled at Aug 28 2009 22:15:29 %ENV: PERL5LIB="/home/fw/perl5/lib/perl5:/home/fw/perl5/lib/perl5/i486-linux-gnu-thread-multi" PERL_MM_OPT="INSTALL_BASE=/home/fw/perl5" @INC: /home/fw/perl5/lib/perl5/i486-linux-gnu-thread-multi /home/fw/perl5/lib/perl5 /home/fw/perl5/lib/perl5/i486-linux-gnu-thread-multi /etc/perl /usr/local/lib/perl/5.10.0 /usr/local/share/perl/5.10.0 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.10 /usr/share/perl/5.10 /usr/local/lib/site_perl Any hints where to start the bug hunting? I installed 1.94_57 by hand (perl Makefile.PL; make; make test) and the tests run fine: PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t t/00signature.t ........ skipped: No Module::Signature found [INC = /home/fw/src/CPAN-1.94_57/blib/lib /home/fw/src/CPAN- 1.94_57/blib/arch /home/fw/perl5/lib/perl5/i486-linux-gnu-thread-multi /home/fw/perl5/lib/perl5/i486-linux-gnu-thread-multi /home/fw/perl5/lib/perl5 /home/fw/perl5/lib/perl5/i486-linux-gnu-thread-multi /home/fw/perl5/lib/perl5 /home/fw/perl5/lib/perl5/i486- linux-gnu-thread-multi /etc/perl /usr/local/lib/perl/5.10.0 /usr/local/share/perl/5.10.0 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.10 /usr/share/perl/5.10 /usr/local/lib/site_perl .] t/01loadme.t ........... ok t/02nox.t .............. ok t/03pkgs.t ............. ok t/04clean_load.t ....... ok t/10version.t .......... ok t/11mirroredby.t ....... ok t/12cpan.t ............. ok t/13tarzip.t ........... ok t/14forkbomb.t ......... skipped: test only run when called with --doit t/30shell.t ............ skipped: no Expect, maybe try env CPAN_RUN_SHELL_TEST_WITHOUT_EXPECT=1 t/31sessions.t ......... skipped: Yaml module [YAML] not installed t/41distribution.t ..... skipped: No yaml module installed t/42distroprefs.t ...... skipped: YAML required t/43distroprefspref.t .. ok t/50pod.t .............. ok t/51pod.t .............. ok t/52podcover.t ......... ok t/60credentials.t ...... ok t/70_critic.t .......... skipped: Test::Perl::Critic required to criticise code All tests successful. Files=20, Tests=304, 8 wallclock secs ( 0.24 usr 0.07 sys + 6.44 cusr 0.80 csys = 7.55 CPU) Result: PASS Thanks, Frank
When I reach line 508 the stacktrace is $ = CPAN::_flock(ref(FileHandle), 6) called from file `lib/CPAN.pm' line 846 . = CPAN::checklock(ref(CPAN)) called from file `lib/CPAN.pm' line 302 . = CPAN::shell() called from -e line 1 This looks like you have a failing filehandle allocation in line 825. I would append a $DB::single=1 in line 824. Can you run 'make rundb' and see if you reach the line and what the $! is indicating?
Subject: Re: [rt.cpan.org #57854] »perl -MCPAN-eshell« fails
Date: Thu, 27 May 2010 00:08:33 +0200
To: bug-CPAN@rt.cpan.org
From: Frank Wiegand <frank.wiegand@gmail.com>
Am Mittwoch, den 26.05.2010, 16:02 -0400 schrieb Andreas Koenig via RT:
Show quoted text
> <URL: https://rt.cpan.org/Ticket/Display.html?id=57854 > > > When I reach line 508 the stacktrace is > > $ = CPAN::_flock(ref(FileHandle), 6) called from file `lib/CPAN.pm' line 846 > . = CPAN::checklock(ref(CPAN)) called from file `lib/CPAN.pm' line 302 > . = CPAN::shell() called from -e line 1 > > This looks like you have a failing filehandle allocation in line 825. > > I would append a $DB::single=1 in line 824. Can you run 'make rundb' and > see if you reach the line and what the $! is indicating?
Like this? $ LC_ALL=C make rundb /usr/bin/perl -Ilib -MCPAN -deshell Loading DB routines from perl5db.pl version 1.3 Editor support available. Enter h or `h h' for help, or `man perldebug' for more help. main::(-e:1): shell DB<1> p $! Illegal seek Frank
Subject: Re: [rt.cpan.org #57854] »perl -MCPAN-eshell« fails
Date: Thu, 27 May 2010 04:36:11 +0200
To: bug-CPAN@rt.cpan.org
From: andreas.koenig.7os6VVqR@franz.ak.mind.de (Andreas J. Koenig)
Show quoted text
>>>>> On Wed, 26 May 2010 18:08:49 -0400, "Frank Wiegand via RT" <bug-CPAN@rt.cpan.org> said:
Show quoted text
> Like this?
Show quoted text
> main::(-e:1): shell > DB<1> p $! > Illegal seek
No, sorry, this program has not started running yet. (A funny status of the debugger it is nonetheless). First command in the debugger should be "r" or "c", like here: =-=-=-=-= % make rundb /usr/local/perl-5.10.1-uld/bin/perl -Ilib -MCPAN -deshell Loading DB routines from perl5db.pl version 1.32 Editor support available. Enter h or `h h' for help, or `man perldebug' for more help. main::(-e:1): shell DB<94> c Cannot create second readline interface, falling back to dumb. at /usr/local/perl-5.10.1-uld/lib/site_perl/5.10.1/Term/ReadLine/Perl.pm line 31 Term::ReadLine::Perl::new('Term::ReadLine', 'CPAN Monitor') called at lib/CPAN.pm line 272 CPAN::shell() called at -e line 1 CPAN: Term::ANSIColor loaded ok (v3.00) Terminal does not support AddHistory. cpan shell -- CPAN exploration and modules installation (v1.9457) Enter 'h' for help. cpan[1]> =-=-=-=-= At this point one could start using the CPAN shell and drop into the debugger on breakpoints. -- andreas
Subject: Re: [rt.cpan.org #57854] »perl -MCPAN-eshell« fails
Date: Thu, 27 May 2010 09:09:37 +0200
To: bug-CPAN@rt.cpan.org
From: Frank Wiegand <frank.wiegand@gmail.com>
Am Mittwoch, den 26.05.2010, 22:36 -0400 schrieb (Andreas J. Koenig) via RT:
Show quoted text
Show quoted text
> No, sorry, this program has not started running yet. (A funny status of > the debugger it is nonetheless). First command in the debugger should be > "r" or "c", like here:
Ah, sorry, I'm stupid. Here we go: $ make rundb /usr/bin/perl -Ilib -MCPAN -deshell Loading DB routines from perl5db.pl version 1.3 Editor support available. Enter h or `h h' for help, or `man perldebug' for more help. main::(-e:1): shell DB<1> c Terminal does not support AddHistory. CPAN::checklock(lib/CPAN.pm:825): unless ($fh = FileHandle->new("+>>$lockfile")) { DB<1> p $! Datei oder Verzeichnis nicht gefunden So it's clearly a locale issue. Setting the locale to C makes CPAN running fine (kind of): $ LC_ALL=C perl -Ilib -MCPAN -eshell Terminal does not support AddHistory. Your configuration suggests that CPAN.pm should use a working directory of /root/.cpan Unfortunately we could not create the lock file /root/.cpan/.lock due to permission problems. Please make sure that the configuration variable $CPAN::Config->{cpan_home} points to a directory where you can write a .lock file. You can set this variable in either a CPAN/MyConfig.pm or a CPAN/Config.pm in your @INC path; You don't seem to have a user configuration (MyConfig.pm) yet. Do you want to create a user configuration now? (Y/n) [yes] Thanks, Frank
Thank you! Fixed in repository in commit f157c25


This service runs on Request Tracker, is sponsored by The Perl Foundation, and maintained by Best Practical Solutions.

Please report any issues with rt.cpan.org to rt-cpan-admin@bestpractical.com.