Skip Menu |
 

This queue is for tickets about the DB_File CPAN distribution.

Report information
The Basics
Id: 124836
Status: open
Priority: 0/
Queue: DB_File

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

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



Subject: Problem with DB_File while building perl in 5.27.0
I just tested a 5.27.10 build on OSX 10.13.3 and got the following failure from db-hash.t $>./TEST ../cpan/DB_File/t/db-hash.t t/../cpan/DB_File/t/db-hash ... Use of uninitialized value $value in string eq at t/db-hash.t line 224. Use of uninitialized value $values[0] in string eq at t/db-hash.t line 224. Use of uninitialized value $value in lc at t/db-hash.t line 224. Use of uninitialized value $h{""} in string eq at t/db-hash.t line 243. Use of uninitialized value in numeric eq (==) at t/db-hash.t line 252. Use of uninitialized value in numeric eq (==) at t/db-hash.t line 252. Use of uninitialized value in numeric eq (==) at t/db-hash.t line 252. Use of uninitialized value in numeric eq (==) at t/db-hash.t line 252. Use of uninitialized value in numeric eq (==) at t/db-hash.t line 252. Use of uninitialized value in numeric eq (==) at t/db-hash.t line 252. Use of uninitialized value in numeric eq (==) at t/db-hash.t line 252. Use of uninitialized value in numeric eq (==) at t/db-hash.t line 252. Use of uninitialized value $foo[18] in join or string at t/db-hash.t line 261. Use of uninitialized value $foo[36] in join or string at t/db-hash.t line 261. Use of uninitialized value $foo[48] in join or string at t/db-hash.t line 261. Use of uninitialized value $foo[58] in join or string at t/db-hash.t line 261. Use of uninitialized value $foo[59] in join or string at t/db-hash.t line 261. Use of uninitialized value $foo[60] in join or string at t/db-hash.t line 261. Use of uninitialized value $foo[62] in join or string at t/db-hash.t line 261. Use of uninitialized value $foo[63] in join or string at t/db-hash.t line 261. Use of uninitialized value $foo[92] in join or string at t/db-hash.t line 261. Use of uninitialized value $foo[114] in join or string at t/db-hash.t line 261. Use of uninitialized value $foo[140] in join or string at t/db-hash.t line 261. Use of uninitialized value $foo[187] in join or string at t/db-hash.t line 261. Use of uninitialized value $foo[188] in join or string at t/db-hash.t line 261. Use of uninitialized value $foo[189] in join or string at t/db-hash.t line 261. Use of uninitialized value in string eq at t/db-hash.t line 294. Use of uninitialized value $h{"Fred"} in string eq at t/db-hash.t line 572. Use of uninitialized value $v in concatenation (.) or string at t/db-hash.t line 748. FAILED at test 23 Failed 1 test out of 1, 0.00% okay. ../cpan/DB_File/t/db-hash.t ### Since not all tests were successful, you may want to run some of ### them individually and examine any diagnostic messages they produce. ### See the INSTALL document's section on "make test". ### You may have to set your dynamic library search path, ### DYLD_LIBRARY_PATH, to point to the build directory: ### setenv DYLD_LIBRARY_PATH `pwd`; cd t; ./perl harness ### DYLD_LIBRARY_PATH=`pwd`; export DYLD_LIBRARY_PATH; cd t; ./perl harness ### export DYLD_LIBRARY_PATH=`pwd`; cd t; ./perl harness ### for csh-style shells, like tcsh; or for traditional/modern ### Bourne-style shells, like bash, ksh, and zsh, respectively. Elapsed: 11 sec u=0.01 s=0.00 cu=2.57 cs=7.34 scripts=1 tests=166
Download (untitled) / with headers
text/plain 148b
From what I can tell, the same failure happens on v5.27.0..v5.27.10 so this was not a blocker for release. I did a build unpriveliged, not as root.
Download (untitled) / with headers
text/plain 209b
I thought I'd also mention that this laptop was a fresh install of OSX 10.13.3. It may be that apple has stopped shipping something that is otherwise present on macs that have upgraded from an earlier version.
Download (untitled) / with headers
text/plain 1.7k
Thanks for the bug report. Not sure what is going on there. If you get a chance can you send me the details below. How to report a problem with DB_File. ------------------------------------- When reporting any problem, I need the information requested below. 1. The *complete* output from running this perl -V Do not edit the output in any way. Note, I want you to run "perl -V" and NOT "perl -v". If your perl does not understand the "-V" option it is too old. DB_File needs Perl version 5.00405 or better. 2. The version of DB_File you have. If you have successfully installed DB_File, this one-liner will tell you: perl -e 'use DB_File; print qq{DB_File ver $DB_File::VERSION\n}' If you are running windows use this perl -e "use DB_File; print qq{DB_File ver $DB_File::VERSION\n}" If you haven't installed DB_File then search DB_File.pm for a line like this: $VERSION = "1.20" ; 3. The version of Berkeley DB used to build DB_File and the version that is used at runtime. (These are usually the same) If you are using a version older than 1.85, think about upgrading. One point to note if you are considering upgrading Berkeley DB - the file formats for 1.85, 1.86, 2.0, 3.0 & 3.1 are all different. If you have successfully installed DB_File, these commands will display the versions I need perl -MDB_File -e 'print qq{Built with Berkeley DB ver $DB_File::db_ver\n}' perl -MDB_File -e 'print qq{Running with Berkeley DB ver $DB_File::db_version\n}' If you are running windows use this perl -e "use DB_File; print qq{Built with Berkeley DB ver $DB_File::db_ver\n}" perl -e "use DB_File; print qq{Running Berkeley DB ver $DB_File::db_version\n}"
Download (untitled) / with headers
text/plain 3.4k
$>perl -V Summary of my perl5 (revision 5 version 18 subversion 2) configuration: Platform: osname=darwin, osvers=18.0, archname=darwin-thread-multi-2level uname='darwin osx337.sd.apple.com 18.0 darwin kernel version 17.0.0: fri may 4 10:33:38 pdt 2018; root:xnu-4570.1.46.100.2~1development_x86_64 x86_64 ' config_args='-ds -e -Dprefix=/usr -Dccflags=-g -pipe -Dldflags= -Dman3ext=3pm -Duseithreads -Duseshrplib -Dinc_version_list=none -Dcc=cc' 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 =' -g -pipe -fno-common -DPERL_DARWIN -fno-strict-aliasing -fstack-protector', optimize='-Os', cppflags='-g -pipe -fno-common -DPERL_DARWIN -fno-strict-aliasing -fstack-protector' ccversion='', gccversion='4.2.1 Compatible Apple LLVM 10.0.0 (clang-1000.0.42)', 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 =' -fstack-protector' libpth=/usr/lib /usr/local/lib libs= perllibs= libc=, so=dylib, useshrplib=true, libperl=libperl.dylib gnulibc_version='' Dynamic Linking: dlsrc=dl_dlopen.xs, dlext=bundle, d_dlsymun=undef, ccdlflags=' ' cccdlflags=' ', lddlflags=' -bundle -undefined dynamic_lookup -fstack-protector' Characteristics of this binary (from libperl): Compile-time options: HAS_TIMES MULTIPLICITY PERLIO_LAYERS PERL_DONT_CREATE_GVSV PERL_HASH_FUNC_ONE_AT_A_TIME_HARD PERL_IMPLICIT_CONTEXT PERL_MALLOC_WRAP PERL_PRESERVE_IVUV PERL_SAWAMPERSAND USE_64_BIT_ALL USE_64_BIT_INT USE_ITHREADS USE_LARGE_FILES USE_LOCALE USE_LOCALE_COLLATE USE_LOCALE_CTYPE USE_LOCALE_NUMERIC USE_PERLIO USE_PERL_ATOF USE_REENTRANT_API Locally applied patches: /Library/Perl/Updates/<version> comes before system perl directories installprivlib and installarchlib points to the Updates directory Built under darwin Compiled at Aug 17 2018 17:29:08 %ENV: PERLDB_OPTS="RemotePort=:9000" @INC: /Library/Perl/5.18/darwin-thread-multi-2level /Library/Perl/5.18 /Network/Library/Perl/5.18/darwin-thread-multi-2level /Network/Library/Perl/5.18 /Library/Perl/Updates/5.18.2/darwin-thread-multi-2level /Library/Perl/Updates/5.18.2 /System/Library/Perl/5.18/darwin-thread-multi-2level /System/Library/Perl/5.18 /System/Library/Perl/Extras/5.18/darwin-thread-multi-2level /System/Library/Perl/Extras/5.18 . $>otool -L /System/Library/Perl/5.18/darwin-thread-multi-2level/auto/DB_File/DB_File.bundle /System/Library/Perl/5.18/darwin-thread-multi-2level/auto/DB_File/DB_File.bundle: /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1252.200.5) $> perl -MDB_File -e 'print qq{Built with Berkeley DB ver $DB_File::db_ver\n}' Built with Berkeley DB ver 1 $>perl -e 'use DB_File; print qq{DB_File ver $DB_File::VERSION\n}' DB_File ver 1.827
Download (untitled) / with headers
text/plain 3.9k
Thanks for the update. There have been a number of other reports of this issue on MacOS. Below is what I have in the latest version of the README file for this module that documents a possible workaround. Would much prefer to have an automatic solution that just makes the issue go away, but I don't run MacOS myself, so the text below is taken from the experiences of the other reporters. If you have any suggestions for a fix, please shout. MacOS Notes ----------- You are running MacOS 10.13 (or possibly later), and the test DB_File test harness file db-hash.t fails like this t/db-btree.t .. ok t/db-hash.t ... Use of uninitialized value $value in string eq at t/db-hash.t line 224. Use of uninitialized value $values[0] in string eq at t/db-hash.t line 224. Use of uninitialized value $value in lc at t/db-hash.t line 224. Use of uninitialized value $h{""} in string eq at t/db-hash.t line 243. Use of uninitialized value in numeric eq (==) at t/db-hash.t line 252. Use of uninitialized value in numeric eq (==) at t/db-hash.t line 252. Use of uninitialized value in numeric eq (==) at t/db-hash.t line 252. Use of uninitialized value in numeric eq (==) at t/db-hash.t line 252. Use of uninitialized value in numeric eq (==) at t/db-hash.t line 252. Use of uninitialized value in numeric eq (==) at t/db-hash.t line 252. Use of uninitialized value in numeric eq (==) at t/db-hash.t line 252. Use of uninitialized value in numeric eq (==) at t/db-hash.t line 252. Use of uninitialized value $foo[18] in join or string at t/db-hash.t line 261. Use of uninitialized value $foo[36] in join or string at t/db-hash.t line 261. Use of uninitialized value $foo[48] in join or string at t/db-hash.t line 261. Use of uninitialized value $foo[58] in join or string at t/db-hash.t line 261. Use of uninitialized value $foo[59] in join or string at t/db-hash.t line 261. Use of uninitialized value $foo[60] in join or string at t/db-hash.t line 261. Use of uninitialized value $foo[62] in join or string at t/db-hash.t line 261. Use of uninitialized value $foo[63] in join or string at t/db-hash.t line 261. Use of uninitialized value $foo[92] in join or string at t/db-hash.t line 261. Use of uninitialized value $foo[114] in join or string at t/db-hash.t line 261. Use of uninitialized value $foo[140] in join or string at t/db-hash.t line 261. Use of uninitialized value $foo[187] in join or string at t/db-hash.t line 261. Use of uninitialized value $foo[188] in join or string at t/db-hash.t line 261. Use of uninitialized value $foo[189] in join or string at t/db-hash.t line 261. t/db-hash.t ... 1/166 Use of uninitialized value $h{"Fred"} in string eq at t/db-hash.t line 572. Use of uninitialized value $v in concatenation (.) or string at t/db-hash.t line 748. t/db-hash.t ... Dubious, test returned 25 (wstat 6400, 0x1900) Failed 76/166 subtests t/db-recno.t .. ok t/pod.t ....... ok It appears that MacOS 10.13 has a copy of BerkeleyDB version 1 included in /usr/lib/system/libsystem_c.dylib. It is not clear why this isn't working with this module. The following ticket has been reported to Apple https://discussions.apple.com/thread/8125401 Solution It has been reported that this issue can be resolved by installing a separate version of the Berkeley DB library and configuring DB_File to use it. One option is to use a prebuild version of Berkeley DB. One is available at MacPorts (https://www.macports.org/). Once you have MacPorts installed, run this sudo port install db48 To get DB_File to use this library edit config.in and change the values for the LIB and include variables as follows LIB = /opt/local/lib/db48 INCLUDE = /opt/local/include/db48 Alternatively, set the two environment variables DB_FILE_LIB and DB_FILE_INCLUDE as follows export DB_FILE_LIB=/opt/local/lib/db48 export DB_FILE_INCLUDE=/opt/local/include/db48 Now rebuild DB_File from scratch.


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

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