#55207 closed defect (fixed)
perl5.2[468]: failed db-hash test on 10.13
Reported by: | mojca (Mojca Miklavec) | Owned by: | mojca (Mojca Miklavec) |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | |
Keywords: | highsierra | Cc: | dbevans (David B. Evans) |
Port: | perl5.24 perl5.26 perl5.28 |
Description (last modified by mojca (Mojca Miklavec))
One test from perl5.24 fails on 10.13:
PERL_DL_NONLAZY=1 "../../perl" "-I../../lib" "-I../../lib" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(0, '../../lib', '../../lib')" t/*.t t/db-btree.t .. ok t/db-hash.t ... 84/166 Use of uninitialized value $value in string eq at t/db-hash.t line 225. Use of uninitialized value $values[0] in string eq at t/db-hash.t line 225. Use of uninitialized value $value in lc at t/db-hash.t line 225. Use of uninitialized value $h{""} in string eq at t/db-hash.t line 244. Use of uninitialized value in numeric eq (==) at t/db-hash.t line 253. Use of uninitialized value in numeric eq (==) at t/db-hash.t line 253. Use of uninitialized value in numeric eq (==) at t/db-hash.t line 253. Use of uninitialized value in numeric eq (==) at t/db-hash.t line 253. Use of uninitialized value in numeric eq (==) at t/db-hash.t line 253. Use of uninitialized value in numeric eq (==) at t/db-hash.t line 253. Use of uninitialized value in numeric eq (==) at t/db-hash.t line 253. Use of uninitialized value in numeric eq (==) at t/db-hash.t line 253. Use of uninitialized value $foo[18] in join or string at t/db-hash.t line 262. Use of uninitialized value $foo[36] in join or string at t/db-hash.t line 262. Use of uninitialized value $foo[48] in join or string at t/db-hash.t line 262. Use of uninitialized value $foo[58] in join or string at t/db-hash.t line 262. Use of uninitialized value $foo[59] in join or string at t/db-hash.t line 262. Use of uninitialized value $foo[60] in join or string at t/db-hash.t line 262. Use of uninitialized value $foo[62] in join or string at t/db-hash.t line 262. Use of uninitialized value $foo[63] in join or string at t/db-hash.t line 262. Use of uninitialized value $foo[92] in join or string at t/db-hash.t line 262. Use of uninitialized value $foo[114] in join or string at t/db-hash.t line 262. Use of uninitialized value $foo[140] in join or string at t/db-hash.t line 262. Use of uninitialized value $foo[187] in join or string at t/db-hash.t line 262. Use of uninitialized value $foo[188] in join or string at t/db-hash.t line 262. Use of uninitialized value $foo[189] in join or string at t/db-hash.t line 262. Use of uninitialized value $h{"Fred"} in string eq at t/db-hash.t line 573. Use of uninitialized value $v in concatenation (.) or string at t/db-hash.t line 749. t/db-hash.t ... Dubious, test returned 25 (wstat 6400, 0x1900) Failed 76/166 subtests t/db-recno.t .. ok Test Summary Report ------------------- t/db-hash.t (Wstat: 6400 Tests: 116 Failed: 26) Failed tests: 23-25, 27-28, 30, 37, 45-46, 68, 70, 72-77 82, 84, 86, 89-90, 98, 101, 106, 112 Non-zero exit status: 25 Parse errors: Bad plan. You planned 166 tests but ran 116. Files=3, Tests=517, 15 wallclock secs ( 2.86 usr 0.20 sys + 3.79 cusr 7.75 csys = 14.60 CPU) Result: FAIL Failed 1/3 test programs. 26/517 subtests failed.
Quick way to test outside of MacPorts:
./Configure -des && TEST_FILES=../cpan/DB_File/t/db-hash.t make -j8 test_harness
(I didn't test older versions.)
Change History (11)
comment:1 Changed 7 years ago by mojca (Mojca Miklavec)
Cc: | dbevans added |
---|---|
Description: | modified (diff) |
Port: | perl5.26 added |
Summary: | perl5.24: failed db-hash test on 10.13 → perl5.24, perl5.26: failed db-hash test on 10.13 |
comment:2 Changed 7 years ago by mojca (Mojca Miklavec)
Description: | modified (diff) |
---|
comment:3 Changed 7 years ago by mojca (Mojca Miklavec)
comment:4 Changed 7 years ago by mojca (Mojca Miklavec)
comment:5 Changed 6 years ago by dgilman (David Gilman)
As a hack, changing config.in to point to /opt/local/{include,lib}/db48 fixes the test. I imagine you don't want to pick up a dependency on db48 here, though, but at the same time the DB_File that your current perl5 Portfile distributes has to have bugs lurking in it - I'm surprised it compiled at all. There's a well-maintained p5-db_file package - how about just patching perl5 to not build DB_File and having people install p5-db_file when they need it?
comment:6 Changed 6 years ago by mojca (Mojca Miklavec)
Thanks a lot for looking into this. So that's just the newer standalone version of the same package that's included in perl itself? (In that case I wonder if the newer version of perl has that package updated.)
comment:7 Changed 6 years ago by dgilman (David Gilman)
Not sure what the antecedent of "that" is - you mean p5-db_file? The issue here isn't new perl vs old perl - it seems like perl itself has a dependency on gdbm and bdb. Take a look at the Debian perl file for perl: https://sources.debian.org/src/perl/5.28.1-3/debian/control/ It has build-time deps on both gdbm and bdb (libdb). I don't have homebrew installed but it seems that their perl is linking against Apple's bdb in /usr.
So to fix this bug you either need to add in bdb as a dependency of the perl interpreter or disable the distribution of DB_File with the perl interpreter. I can confirm perl 5.28 won't fix this as I ran the test suite myself and saw it broken there.
comment:8 Changed 6 years ago by dgilman (David Gilman)
comment:9 Changed 6 years ago by mojca (Mojca Miklavec)
Port: | perl5.28 added |
---|---|
Summary: | perl5.24, perl5.26: failed db-hash test on 10.13 → perl5.2[468]: failed db-hash test on 10.13 |
comment:10 Changed 6 years ago by dgilman (David Gilman)
Resolution: | → fixed |
---|---|
Status: | new → closed |
comment:11 Changed 3 months ago by RJVB (René Bertin)
I know this is an old ticket, but I'm rebuilding perl 5.26 on Linux right now and I'm running into a related issue. The Configure script picks up db.h
(but I had to use a -I
in the cflags for that) but then it doesn't link the proper library when trying to find the db_version
symbol. Even setting DBNAME
in the DB_File config.in file doesn't have any effect.
TonyC on #p5p @ irc.perl.org says it works for him on a VM using HFS / Mac OS Extended (Journaled) file system.