Skip Menu |
Report information
Id: 123553
Status: resolved
Priority: 0/
Queue: perl5

Owner: Nobody
Requestors: choroba [at] cpan.org
Cc:
AdminCc:

Operating System: Linux
PatchStatus: (no value)
Severity: low
Type: library
Perl Version: 5.18.1
Fixed In: 5.22.0



Subject: perl5db.pl: Undefined subroutine &DB::db_warn called
From: "E. Choroba" <choroba [...] cpan.org>
To: perlbug [...] perl.org
Date: Tue, 6 Jan 2015 01:25:53 +0100 (CET)
Download (untitled) / with headers
text/plain 4.9k
This is a bug report for perl from choroba@cpan.org, generated with the help of perlbug 1.39 running under perl 5.18.1. ----------------------------------------------------------------- [Please describe your issue here] Perl debugger sometimes tries to call a non-existent subroutine db_warn. It's real name is _db_warn, though. How to replicate: perl -d -e1 !/ Output: /bin/bash: /: Is a directory Undefined subroutine &DB::db_warn called at /usr/lib/perl5/5.18.1/perl5db.pl line 6740. at /usr/lib/perl5/5.18.1/perl5db.pl line 6740. DB::_db_system('/bin/bash', '-c', '/') called at /usr/lib/perl5/5.18.1/perl5db.pl line 3923 DB::Obj::_handle_sh_command('DB::Obj=HASH(0x105df48)') called at /usr/lib/perl5/5.18.1/perl5db.pl line 2992 DB::DB called at -e line 1 Patch to fix the issue attached. Choroba [Please do not change anything below this line] ----------------------------------------------------------------- --- Flags: category=library severity=low module=DB --- This perlbug was built using Perl 5.18.1 - Fri Sep 27 18:27:33 UTC 2013 It is being executed now by Perl 5.18.1 - Fri Sep 27 18:20:30 UTC 2013. Site configuration information for perl 5.18.1: Configured by abuild at Fri Sep 27 18:20:30 UTC 2013. Summary of my perl5 (revision 5 version 18 subversion 1) configuration: Platform: osname=linux, osvers=3.4.6-2.10-xen, archname=x86_64-linux-thread-multi uname='linux build16 3.4.6-2.10-xen #1 smp thu jul 26 09:36:26 utc 2012 (641c197) x86_64 x86_64 x86_64 gnulinux ' config_args='-ds -e -Dprefix=/usr -Dvendorprefix=/usr -Dinstallusrbinperl -Dusethreads -Di_db -Di_dbm -Di_ndbm -Di_gdbm -Dd_dbm_open -Duseshrplib=true -Doptimize=-fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -g -Wall -pipe -Accflags=-DPERL_USE_SAFE_PUTENV -Dotherlibdirs=/usr/lib/perl5/site_perl -Dinc_version_list=5.18.0/x86_64-linux-thread-multi 5.18.0' hint=recommended, useposix=true, d_sigaction=define useithreads=define, usemultiplicity=define useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef use64bitint=define, use64bitall=define, uselongdouble=undef usemymalloc=n, bincompat5005=undef Compiler: cc='cc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -DPERL_USE_SAFE_PUTENV -fno-strict-aliasing -pipe -fstack-protector -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64', optimize='-fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -g -Wall -pipe', cppflags='-D_REENTRANT -D_GNU_SOURCE -DPERL_USE_SAFE_PUTENV -fno-strict-aliasing -pipe -fstack-protector' ccversion='', gccversion='4.8.1 20130909 [gcc-4_8-branch revision 202388]', gccosandvers='' intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=12345678 d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16 ivtype='long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8 alignbytes=8, prototype=define Linker and Libraries: ld='cc', ldflags =' -L/usr/local/lib64 -fstack-protector' libpth=/lib64 /usr/lib64 /usr/local/lib64 libs=-lm -ldl -lcrypt -lpthread perllibs=-lm -ldl -lcrypt -lpthread libc=/lib64/libc-2.18.so, so=so, useshrplib=true, libperl=libperl.so gnulibc_version='2.18' Dynamic Linking: dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E -Wl,-rpath,/usr/lib/perl5/5.18.1/x86_64-linux-thread-multi/CORE' cccdlflags='-fPIC', lddlflags='-shared -L/usr/local/lib64 -fstack-protector' Locally applied patches: --- @INC for perl 5.18.1: /home/choroba/perl5/lib/perl5/x86_64-linux-thread-multi /home/choroba/perl5/lib/perl5/x86_64-linux-thread-multi /home/choroba/perl5/lib/perl5 /home/choroba/perl5/lib/perl5/x86_64-linux-thread-multi /home/choroba/perl5/lib/perl5/x86_64-linux-thread-multi /home/choroba/perl5/lib/perl5 /usr/lib/perl5/site_perl/5.18.1/x86_64-linux-thread-multi /usr/lib/perl5/site_perl/5.18.1 /usr/lib/perl5/vendor_perl/5.18.1/x86_64-linux-thread-multi /usr/lib/perl5/vendor_perl/5.18.1 /usr/lib/perl5/5.18.1/x86_64-linux-thread-multi /usr/lib/perl5/5.18.1 /usr/lib/perl5/site_perl . --- Environment for perl 5.18.1: HOME=/home/choroba LANG=en_US.UTF-8 LANGUAGE=en_US.utf8 LD_LIBRARY_PATH (unset) LOGDIR (unset) PATH=/home/choroba/perl5/bin:/home/choroba/bin:/bin:/sbin:/usr/bin:/usr/local/bin:/usr/games:/usr/X11R6/bin:/opt/gnome/bin:/home/choroba/perl/bin:. PERL5LIB=/home/choroba/perl5/lib/perl5/x86_64-linux-thread-multi:/home/choroba/perl5/lib/perl5:/home/choroba/perl5/lib/perl5/x86_64-linux-thread-multi:/home/choroba/perl5/lib/perl5: PERL_BADLANG (unset) PERL_LOCAL_LIB_ROOT=/home/choroba/perl5 PERL_MB_OPT=--install_base /home/choroba/perl5 PERL_MM_OPT=INSTALL_BASE=/home/choroba/perl5 SHELL=/bin/bash
Download perl5db.patch
text/plain 1.6k

Message body is not shown because sender requested not to inline it.

RT-Send-CC: perl5-porters [...] perl.org
Download (untitled) / with headers
text/plain 6.6k
On Mon Jan 05 16:26:08 2015, choroba@cpan.org wrote: Show quoted text
> This is a bug report for perl from choroba@cpan.org, > generated with the help of perlbug 1.39 running under perl 5.18.1. > > > ----------------------------------------------------------------- > [Please describe your issue here] > > Perl debugger sometimes tries to call a non-existent subroutine > db_warn. It's real name is _db_warn, though. > > How to replicate: > > perl -d -e1 > !/ > > Output: > > /bin/bash: /: Is a directory > Undefined subroutine &DB::db_warn called at > /usr/lib/perl5/5.18.1/perl5db.pl line 6740. > at /usr/lib/perl5/5.18.1/perl5db.pl line 6740. > DB::_db_system('/bin/bash', '-c', '/') called at > /usr/lib/perl5/5.18.1/perl5db.pl line 3923 > DB::Obj::_handle_sh_command('DB::Obj=HASH(0x105df48)') called > at /usr/lib/perl5/5.18.1/perl5db.pl line 2992 > DB::DB called at -e line 1 > > Patch to fix the issue attached. > > Choroba >
Thank you very much for this report. This is a bug which crept in somewhere between perl 5.16.3 and perl 5.18.2. ##### [~] 11 $ perlbrew switch perl-5.16.3 [~] 12 $ perl -d -e1 Loading DB routines from perl5db.pl version 1.37 Editor support available. Enter h or 'h h' for help, or 'man perldebug' for more help. main::(-e:1): 1 DB<1> !/ No such command! DB<1> q [~] 13 $ perlbrew switch perl-5.18.2 [~] 14 $ perl -d -e1 Loading DB routines from perl5db.pl version 1.39_10 Editor support available. Enter h or 'h h' for help, or 'man perldebug' for more help. main::(-e:1): 1 DB<1> !/ /bin/bash: /: Is a directory Undefined subroutine &DB::db_warn called at /home/jkeenan/perl5/perlbrew/perls/perl-5.18.2/lib/5.18.2/perl5db.pl line 6735. at /home/jkeenan/perl5/perlbrew/perls/perl-5.18.2/lib/5.18.2/perl5db.pl line 6735. DB::_db_system('/bin/bash', '-c', '/') called at /home/jkeenan/perl5/perlbrew/perls/perl-5.18.2/lib/5.18.2/perl5db.pl line 3918 DB::Obj::_handle_sh_command('DB::Obj=HASH(0x1dee6b0)') called at /home/jkeenan/perl5/perlbrew/perls/perl-5.18.2/lib/5.18.2/perl5db.pl line 2987 DB::DB called at -e line 1 Debugged program terminated. Use q to quit or R to restart, use o inhibit_exit to avoid stopping after program termination, h q, h R or h o to get additional info. DB<2> q ##### We should figure out what commit broke this functionality, then consider whether we should apply your patch or try to restore the previous behavior. Show quoted text
> [Please do not change anything below this line] > ----------------------------------------------------------------- > --- > Flags: > category=library > severity=low > module=DB > --- > This perlbug was built using Perl 5.18.1 - Fri Sep 27 18:27:33 UTC > 2013 > It is being executed now by Perl 5.18.1 - Fri Sep 27 18:20:30 UTC > 2013. > > Site configuration information for perl 5.18.1: > > Configured by abuild at Fri Sep 27 18:20:30 UTC 2013. > > Summary of my perl5 (revision 5 version 18 subversion 1) > configuration: > > Platform: > osname=linux, osvers=3.4.6-2.10-xen, archname=x86_64-linux-thread- > multi > uname='linux build16 3.4.6-2.10-xen #1 smp thu jul 26 09:36:26 utc > 2012 > (641c197) x86_64 x86_64 x86_64 gnulinux ' > config_args='-ds -e -Dprefix=/usr -Dvendorprefix=/usr > -Dinstallusrbinperl > -Dusethreads -Di_db -Di_dbm -Di_ndbm -Di_gdbm -Dd_dbm_open > -Duseshrplib=true > -Doptimize=-fmessage-length=0 -grecord-gcc-switches -O2 -Wall > -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables > -fasynchronous-unwind-tables -g -Wall -pipe -Accflags=- > DPERL_USE_SAFE_PUTENV > -Dotherlibdirs=/usr/lib/perl5/site_perl > -Dinc_version_list=5.18.0/x86_64-linux-thread-multi 5.18.0' > hint=recommended, useposix=true, d_sigaction=define > useithreads=define, usemultiplicity=define > useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef > use64bitint=define, use64bitall=define, uselongdouble=undef > usemymalloc=n, bincompat5005=undef > Compiler: > cc='cc', ccflags ='-D_REENTRANT -D_GNU_SOURCE > -DPERL_USE_SAFE_PUTENV > -fno-strict-aliasing -pipe -fstack-protector -D_LARGEFILE_SOURCE > -D_FILE_OFFSET_BITS=64', > optimize='-fmessage-length=0 -grecord-gcc-switches -O2 -Wall > -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables > -fasynchronous-unwind-tables -g -Wall -pipe', > cppflags='-D_REENTRANT -D_GNU_SOURCE -DPERL_USE_SAFE_PUTENV > -fno-strict-aliasing -pipe -fstack-protector' > ccversion='', gccversion='4.8.1 20130909 [gcc-4_8-branch revision > 202388]', gccosandvers='' > intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=12345678 > d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16 > ivtype='long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t', > lseeksize=8 > alignbytes=8, prototype=define > Linker and Libraries: > ld='cc', ldflags =' -L/usr/local/lib64 -fstack-protector' > libpth=/lib64 /usr/lib64 /usr/local/lib64 > libs=-lm -ldl -lcrypt -lpthread > perllibs=-lm -ldl -lcrypt -lpthread > libc=/lib64/libc-2.18.so, so=so, useshrplib=true, libperl=libperl.so > gnulibc_version='2.18' > Dynamic Linking: > dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E > -Wl,-rpath,/usr/lib/perl5/5.18.1/x86_64-linux-thread-multi/CORE' > cccdlflags='-fPIC', lddlflags='-shared -L/usr/local/lib64 > -fstack-protector' > > Locally applied patches: > > > --- > @INC for perl 5.18.1: > /home/choroba/perl5/lib/perl5/x86_64-linux-thread-multi > /home/choroba/perl5/lib/perl5/x86_64-linux-thread-multi > /home/choroba/perl5/lib/perl5 > /home/choroba/perl5/lib/perl5/x86_64-linux-thread-multi > /home/choroba/perl5/lib/perl5/x86_64-linux-thread-multi > /home/choroba/perl5/lib/perl5 > /usr/lib/perl5/site_perl/5.18.1/x86_64-linux-thread-multi > /usr/lib/perl5/site_perl/5.18.1 > /usr/lib/perl5/vendor_perl/5.18.1/x86_64-linux-thread-multi > /usr/lib/perl5/vendor_perl/5.18.1 > /usr/lib/perl5/5.18.1/x86_64-linux-thread-multi > /usr/lib/perl5/5.18.1 > /usr/lib/perl5/site_perl > . > > --- > Environment for perl 5.18.1: > HOME=/home/choroba > LANG=en_US.UTF-8 > LANGUAGE=en_US.utf8 > LD_LIBRARY_PATH (unset) > LOGDIR (unset) > > PATH=/home/choroba/perl5/bin:/home/choroba/bin:/bin:/sbin:/usr/bin:/usr/local/bin:/usr/games:/usr/X11R6/bin:/opt/gnome/bin:/home/choroba/perl/bin:. > > PERL5LIB=/home/choroba/perl5/lib/perl5/x86_64-linux-thread- > multi:/home/choroba/perl5/lib/perl5:/home/choroba/perl5/lib/perl5/x86_64- > linux-thread-multi:/home/choroba/perl5/lib/perl5: > PERL_BADLANG (unset) > PERL_LOCAL_LIB_ROOT=/home/choroba/perl5 > PERL_MB_OPT=--install_base /home/choroba/perl5 > PERL_MM_OPT=INSTALL_BASE=/home/choroba/perl5 > SHELL=/bin/bash
-- James E Keenan (jkeenan@cpan.org)
RT-Send-CC: perl5-porters [...] perl.org
Download (untitled) / with headers
text/plain 437b
On Mon Jan 05 18:51:14 2015, jkeenan wrote: Show quoted text
> We should figure out what commit broke this functionality, then > consider whether we should apply your patch or try to restore the > previous behavior.
b5679dc0b0 clearly had a few typos in it. That 5.16 had no ! command is unrelated. On Mon Jan 05 16:26:08 2015, choroba@cpan.org wrote: Show quoted text
> Patch to fix the issue attached.
Thank you. Applied as 2384afee950. -- Father Chrysostomos
Subject: Your ticket against Perl 5 has been resolved
Download (untitled) / with headers
text/plain 263b
Thanks for submitting this ticket The issue should be resolved with the release today of Perl v5.22, available at http://www.perl.org/get.html If you find that the problem persists, feel free to reopen this ticket -- Karl Williamson for the Perl 5 porters team


This service is sponsored and maintained by Best Practical Solutions and runs on Perl.org infrastructure.

For issues related to this RT instance (aka "perlbug"), please contact perlbug-admin at perl.org