Open p5pRT opened 6 years ago
When trying to build perl from git on a new laptop\, I get test failures in cpan/DB_File/t/db-hash.t:
The test output contained a few lines with a few million NULs -- they have been replaced (otherwise\, perlbug would not accept the report).
Use of uninitialized value $value in string eq at cpan/DB_File/t/db= -hash.t line 224. Use of uninitialized value $values[0] in string eq at cpan/DB_File/= t/db-hash.t line 224. Use of uninitialized value $value in lc at cpan/DB_File/t/db-hash.t= line 224. Use of uninitialized value $h{""} in string eq at cpan/DB_File/t/db= -hash.t line 243. Use of uninitialized value in numeric eq (=3D=3D) at cpan/DB_File/t= /db-hash.t line 252. Use of uninitialized value in numeric eq (=3D=3D) at cpan/DB_File/t= /db-hash.t line 252. Use of uninitialized value in numeric eq (=3D=3D) at cpan/DB_File/t= /db-hash.t line 252. Use of uninitialized value in numeric eq (=3D=3D) at cpan/DB_File/t= /db-hash.t line 252. Use of uninitialized value in numeric eq (=3D=3D) at cpan/DB_File/t= /db-hash.t line 252. Use of uninitialized value in numeric eq (=3D=3D) at cpan/DB_File/t= /db-hash.t line 252. Use of uninitialized value in numeric eq (=3D=3D) at cpan/DB_File/t= /db-hash.t line 252. Use of uninitialized value in numeric eq (=3D=3D) at cpan/DB_File/t= /db-hash.t line 252. Use of uninitialized value $foo[18] in join or string at cpan/DB_Fi= le/t/db-hash.t line 261. Use of uninitialized value $foo[36] in join or string at cpan/DB_Fi= le/t/db-hash.t line 261. Use of uninitialized value $foo[48] in join or string at cpan/DB_Fi= le/t/db-hash.t line 261. Use of uninitialized value $foo[58] in join or string at cpan/DB_Fi= le/t/db-hash.t line 261. Use of uninitialized value $foo[59] in join or string at cpan/DB_Fi= le/t/db-hash.t line 261. Use of uninitialized value $foo[60] in join or string at cpan/DB_Fi= le/t/db-hash.t line 261. Use of uninitialized value $foo[62] in join or string at cpan/DB_Fi= le/t/db-hash.t line 261. Use of uninitialized value $foo[63] in join or string at cpan/DB_Fi= le/t/db-hash.t line 261. Use of uninitialized value $foo[92] in join or string at cpan/DB_Fi= le/t/db-hash.t line 261. Use of uninitialized value $foo[114] in join or string at cpan/DB_F= ile/t/db-hash.t line 261. Use of uninitialized value $foo[140] in join or string at cpan/DB_F= ile/t/db-hash.t line 261. Use of uninitialized value $foo[187] in join or string at cpan/DB_F= ile/t/db-hash.t line 261. Use of uninitialized value $foo[188] in join or string at cpan/DB_F= ile/t/db-hash.t line 261. Use of uninitialized value $foo[189] in join or string at cpan/DB_F= ile/t/db-hash.t line 261. 1..166 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok 9 ok 10 ok 11 ok 12 ok 13 ok 14 ok 15 ok 16 ok 17 ok 18 ok 19 ok 20 ok 21 ok 22 not ok 23 not ok 24 not ok 25 ok 26 not ok 27 not ok 28 ok 29 not ok 30 ok 31 ok 32 ok 33 ok 34 ok 35 ok 36 not ok 37 ok 38 ok 39 ok 40 ok 41 ok 42 ok 43 ok 44 not ok 45 not ok 46 ok 47 ok 48 ok 49 ok 50 ok 51 ok 52 ok 53 ok 54 ok 55 ok 56 ok 57 ok 58 ok 59 ok 60 ok 61 ok 62 ok 63 ok 64 ok 65 ok 66 ok 67 not ok 68 ok 69 # Fetch Key : expected 'fred' got 'fred \<4128275 NULs deleted>Use= of uninitialized value $h{"Fred"} in string eq at cpan/DB_File/t/db-hash.t= line 572. =00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00= =00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00= =00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00= =00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00= =00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00= =00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00= =00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00= =00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00= =00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00= =00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00= =00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00= =00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00= =00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00= =00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00= =00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00= =00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00= =00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00= =00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00= =00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00= =00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00' not ok 70 ok 71 not ok 72 # Fetch Value : expected '[Jxe]' got '' not ok 73 not ok 74 not ok 75 # k [Fred] not ok 76 # Fetch Key : expected 'FRED' got '' # Fetch Value : expected '[Jxe]' got '' not ok 77 ok 78 ok 79 ok 80 ok 81 not ok 82 ok 83 # Fetch Key : expected 'fred' got 'fred \<4127986 NULs deleted>Use= of uninitialized value $v in concatenation (.) or string at cpan/DB_File/t= /db-hash.t line 748. =00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00= =00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00= =00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00= =00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00= =00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00= =00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00= =00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00= =00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00= =00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00= =00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00= =00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00= =00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00= =00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00= =00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00= =00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00= =00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00= =00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00= =00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00= =00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00= =00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00= =00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00= =00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00= =00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00= =00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00= =00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00= =00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00= =00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00= =00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00= =00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00= =00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00= =00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00= =00=00=00=00=00=00=00=00=00=00' not ok 84 ok 85 not ok 86 ok 87 ok 88 not ok 89 not ok 90 ok 91 ok 92 ok 93 ok 94 ok 95 ok 96 ok 97 not ok 98 ok 99 ok 100 not ok 101 ok 102 ok 103 ok 104 ok 105 not ok 106 ok 107 ok 108 ok 109 ok 110 ok 111 not ok 112 ok 113 ok 114 ok 115 ok 116
On Thu\, 14 Jun 2018 07:13:49 -0700\, abigail@abigail.be wrote:
This is a bug report for perl from abigail@abigail.be\, generated with the help of perlbug 1.41 running under perl 5.28.0.
----------------------------------------------------------------- [Please describe your issue here]
When trying to build perl from git on a new laptop\, I get test failures in cpan/DB_File/t/db-hash.t:
The test output contained a few lines with a few million NULs -- they have been replaced (otherwise\, perlbug would not accept the report). ...
This appears to be a duplicate of https://rt.cpan.org/Ticket/Display.html?id=125238.
That report suggests that the BerkelyDB library in MacOS is in a place that DB_File hasn't been configured to use. In the section "Let's make libdb work" from #125238\, it says that the BerkeleyDB library is installed in /opt/local/lib/db48.
If that is the case here\, edit the config.in file for DB_File and set
INCLUDE = /opt/local/include/db48 LIB = /opt/local/lib/db48
the rebuild & test DB_File.
Alternatively set the environment variables DB_FILE_INCLUDE to /opt/local/include/db48 and DB_FILE_LIB to /opt/local/lib/db48\, the rebuild & test DB_File.
If this works\, I'll add a note to the Troubleshooting section in the README
cheers Paul
The RT System itself - Status changed from 'new' to 'open'
On Sat\, Jun 16\, 2018 at 03:50:59PM -0700\, Paul Marquess via RT wrote:
On Thu\, 14 Jun 2018 07:13:49 -0700\, abigail@abigail.be wrote:
This is a bug report for perl from abigail@abigail.be\, generated with the help of perlbug 1.41 running under perl 5.28.0.
----------------------------------------------------------------- [Please describe your issue here]
When trying to build perl from git on a new laptop\, I get test failures in cpan/DB_File/t/db-hash.t:
The test output contained a few lines with a few million NULs -- they have been replaced (otherwise\, perlbug would not accept the report). ...
This appears to be a duplicate of https://rt.cpan.org/Ticket/Display.html?id=125238.
That report suggests that the BerkelyDB library in MacOS is in a place that DB_File hasn't been configured to use. In the section "Let's make libdb work" from #125238\, it says that the BerkeleyDB library is installed in /opt/local/lib/db48.
If that is the case here\, edit the config.in file for DB_File and set
INCLUDE = /opt/local/include/db48 LIB = /opt/local/lib/db48
the rebuild & test DB_File.
Alternatively set the environment variables DB_FILE_INCLUDE to /opt/local/include/db48 and DB_FILE_LIB to /opt/local/lib/db48\, the rebuild & test DB_File.
If this works\, I'll add a note to the Troubleshooting section in the README
That seems to do the trick.
Thanks\,
Abigail
Do you know if MacOS ships with the Berkeley DB include file\, db.h? Otherwise DB_File.xs wouldnât compile at all.
Seems strange to have that include file\, but not the library.
On Sun\, 17 Jun 2018 01:31:15 -0700\, pmqs wrote:
Do you know if MacOS ships with the Berkeley DB include file\, db.h? Otherwise DB_File.xs wouldnât compile at all.
Seems strange to have that include file\, but not the library.
Actually â looking at your bug report again\, most of the DB_File test harness passed. That means there needs to be a version of the Berkeley DB library available.
If you get a chance\, could you see what this gives you when run in the DB_File source directory after youâve run âmake testâ (without setting any of the INCLUDE/LIB variables to point to /opt/local/lib/db48)
perl -Mblib -MDB_File -e 'print qq{Built with Berkeley DB ver $DB_File::db_ver\n}' perl -Mblib -MDB_File -e 'print qq{Running with Berkeley DB ver $DB_File::db_version\n}'
thanks Paul
On Sun\, Jun 17\, 2018 at 01:43:53AM -0700\, Paul Marquess via RT wrote:
On Sun\, 17 Jun 2018 01:31:15 -0700\, pmqs wrote:
Do you know if MacOS ships with the Berkeley DB include file\, db.h? Otherwise DB_File.xs wouldnât compile at all.
Seems strange to have that include file\, but not the library.
Actually â looking at your bug report again\, most of the DB_File test harness passed. That means there needs to be a version of the Berkeley DB library available.
If you get a chance\, could you see what this gives you when run in the DB_File source directory after youâve run âmake testâ (without setting any of the INCLUDE/LIB variables to point to /opt/local/lib/db48)
perl \-Mblib \-MDB\_File \-e 'print qq\{Built with Berkeley DB ver $DB\_File​::db\_ver\\n\}' perl \-Mblib \-MDB\_File \-e 'print qq\{Running with Berkeley DB ver $DB\_File​::db\_version\\n\}'
$ cd cpan/DB_File $ ../../perl -I../../lib -Iblib -MDB_File -E 'say "Built with Berkeley DB ver $DB_File::db_ver"' Built with Berkeley DB ver 1 $ ../../perl -I../../lib -Iblib -MDB_File -E 'say "Built with Berkeley DB version $DB_File::db_version"' Built with Berkeley DB version 1
Regards\,
Abigail
If you get a chance\, could you see what this gives you when run in the DB_File source directory after youâve run âmake testâ (without setting any of the INCLUDE/LIB variables to point to /opt/local/lib/db48)
perl \-Mblib \-MDB\_File \-e 'print qq\{Built with Berkeley DB ver $DB\_File​::db\_ver\\n\}' perl \-Mblib \-MDB\_File \-e 'print qq\{Running with Berkeley DB ver $DB\_File​::db\_version\\n\}'
$ cd cpan/DB_File $ ../../perl -I../../lib -Iblib -MDB_File -E 'say "Built with Berkeley DB ver $DB_File::db_ver"' Built with Berkeley DB ver 1 $ ../../perl -I../../lib -Iblib -MDB_File -E 'say "Built with Berkeley DB version $DB_File::db_version"' Built with Berkeley DB version 1
Version 1 ! Now I'm confused.
Running that test without messing with DB_File INCLUDE/LIB variables implies there already is a copy of the original version 1 Berkeley DB library (the one that DB_File was originally written for) on MacOS.
Why it is failing only one of the test is weird. Need to think about what to do nest.
thanks Paul
On Sun\, Jun 17\, 2018 at 2:43 PM\, paul.marquess via perl5-porters \perl5\-porters@​perl\.org wrote:
If you get a chance\, could you see what this gives you when run in the DB_File source directory after youâve run âmake testâ (without setting any of the INCLUDE/LIB variables to point to /opt/local/lib/db48)
perl \-Mblib \-MDB\_File \-e 'print qq\{Built with Berkeley DB ver $DB\_File​::db\_ver\\n\}' perl \-Mblib \-MDB\_File \-e 'print qq\{Running with Berkeley DB ver $DB\_File​::db\_version\\n\}'
$ cd cpan/DB_File $ ../../perl -I../../lib -Iblib -MDB_File -E 'say "Built with Berkeley DB ver $DB_File::db_ver"' Built with Berkeley DB ver 1 $ ../../perl -I../../lib -Iblib -MDB_File -E 'say "Built with Berkeley DB version $DB_File::db_version"' Built with Berkeley DB version 1
Version 1 ! Now I'm confused.
Running that test without messing with DB_File INCLUDE/LIB variables implies there already is a copy of the original version 1 Berkeley DB library (the one that DB_File was originally written for) on MacOS.
Why it is failing only one of the test is weird. Need to think about what to do nest.
I get the same thing\, but after "brew install berkeley-db" get:
$ cd cpan/DB_File $ ../../perl -I../../lib -Iblib -MDB_File -E 'say "Built with Berkeley DB ver $DB_File::db_ver"' Built with Berkeley DB ver 6.002032 $ ../../perl -I../../lib -Iblib -MDB_File -E 'say "Built with Berkeley DB version $DB_File::db_version"' Built with Berkeley DB version 6.2
and all tests passing\, so that is a workaround for people who need DB::File working.
Now back to the default situation. Apparently Berkeley DB is present on macOS High Sierra but is located in libSystem.B.dylib rather than in its own library:
\https://discussions.apple.com/thread/8125401
and it's buggy. Not sure how to work around that.
On Thu\, Jun 21\, 2018 at 7:59 AM\, Craig A. Berry \craig\.a\.berry@​gmail\.com wrote:
Now back to the default situation. Apparently Berkeley DB is present on macOS High Sierra but is located in libSystem.B.dylib rather than in its own library:
\https://discussions.apple.com/thread/8125401
and it's buggy. Not sure how to work around that.
Actually\, the Berkeley v1 functions appear to be in libsystem_c:
$ nm /usr/lib/system/libsystem_c.dylib | egrep 'dbpanic|dbopen|bt_open|hash_open|rec_open|dbpanic' 00000000000142d8 T ___bt_open 0000000000016eab T ___dbpanic 0000000000016ee4 T ___hash_open 000000000001bbd0 T ___rec_open 0000000000016e39 T _dbopen
and the /usr/include/db.h appears to be consistent with that (ancient BSD license with no mention of Sleepycat or Oracle). Apple includes much later versions of Berkeley DB in its open source listings:
\https://opensource.apple.com/source/BerkeleyDB/
but where that gets installed (or if it does) is something I have not managed to figure out. It may only be used as part of some other package.
Where things go obviously wrong with the db-hash.t test is right here:
# tie to the same file again\, do not supply a type - should default to HASH ok(22\, $X = tie(%h\,'DB_File'\,$Dfile\, O_RDWR\, 0640) );
Right before this %h is empty\, and right after it\, %h has 10 entries. The keys are each 4128769 bytes long consisting mostly or entirely of NULs (hard to tell with the debugger) and the values are undef. But there is probably something wrong before that as the file referenced by $Dfile is over 200MB:
$ ls -l dbhash.tmp -rw-r----- 1 craig staff 205520896 Jun 21 17:31 dbhash.tmp
That zips down to about 200K\, but that's still a bit big to attach here.
I don't know if or when I'll be able to debug this further.
also posted as https://stackoverflow.com/questions/46660971/how-to-install-perl-on-macos-10-13-high-sierra/51332834
Migrated from rt.perl.org#133280 (status was 'open')
Searchable as RT133280$