[DRE-maint] Bug#741576: ruby-bdb: FTBFS (on AMD64): Test failures
Gunnar Wolf
gwolf at gwolf.org
Fri Mar 14 01:10:27 UTC 2014
Source: ruby-bdb
Version: 0.6.6-1
Severity: serious
Justification: FTBFS on amd64
Attempting to build this package on AMD64, I got the following
results:
--------------------8<--------------------8<--------------------
/usr/bin/install -c -m 0755 bdb.so ./.gem.20140313-22704-1exw4lh
make[1]: Leaving directory `/home/gwolf/vcs/build-area/ruby-bdb-0.6.6/src'
Running tests for ruby1.9.1 using debian/ruby-tests.rb...
VERSION of BDB is Berkeley DB 5.3.28: (September 9, 2013)
Run options:
# Running tests:
............
Finished tests in 0.561218s, 21.3821 tests/s, 4124.9583 assertions/s.
12 tests, 2315 assertions, 0 failures, 0 errors, 0 skips
VERSION of BDB is Berkeley DB 5.3.28: (September 9, 2013)
Run options:
# Running tests:
..................EEEE.
Finished tests in 4.073800s, 5.6458 tests/s, 1880.0627 assertions/s.
1) Error:
test_18_hash_delete(TestHash):
RangeError: integer -1893907612379325628 too small to convert to `unsigned int'
tests/hash.rb:387:in `initialize'
tests/hash.rb:387:in `new'
tests/hash.rb:387:in `open'
tests/hash.rb:387:in `test_18_hash_delete'
2) Error:
test_18_index(TestHash):
BDB::Fatal: closed DB
tests/hash.rb:400:in `index'
tests/hash.rb:400:in `block in test_18_index'
tests/hash.rb:397:in `times'
tests/hash.rb:397:in `test_18_index'
3) Error:
test_19_convert(TestHash):
BDB::Fatal: closed DB
tests/hash.rb:409:in `to_hash'
tests/hash.rb:409:in `test_19_convert'
4) Error:
test_20_blurb(TestHash):
BDB::Fatal: closed DB
tests/hash.rb:426:in `each'
tests/hash.rb:426:in `test_20_blurb'
23 tests, 7659 assertions, 0 failures, 4 errors, 0 skips
ERROR: Test "ruby1.9.1" failed. Exiting.
dh_auto_install: dh_ruby --install /home/gwolf/vcs/build-area/ruby-bdb-0.6.6/debian/ruby-bdb returned exit code 1
make: *** [binary] Error 1
dpkg-buildpackage: error: fakeroot debian/rules binary gave error exit status 2
--------------------8<--------------------8<--------------------
Setting $VERBOSE=1 in tests/hash.rb yields the following results with
Ruby 1.9.1:
--------------------8<--------------------8<--------------------
$ ruby1.9.1 -e '$:<<"../../build-area/ruby-bdb-0.6.6/debian/ruby-bdb/usr/lib/ruby/vendor_ruby/1.9.1//x86_64-linux/"; require "./tests/hash"'
VERSION of BDB is Berkeley DB 5.3.28: (September 9, 2013)
Run options:
# Running tests:
..................E/home/gwolf/vcs/pkg-ruby-extras/ruby-bdb/tests/hash.rb:400: warning: Hash#index is deprecated; use Hash#key
EE.
Finished tests in 3.898375s, 5.6434 tests/s, 1967.7432 assertions/s.
1) Error:
test_18_hash_delete(TestHash):
RangeError: integer -3058836581575265859 too small to convert to `unsigned int'
/home/gwolf/vcs/pkg-ruby-extras/ruby-bdb/tests/hash.rb:387:in `initialize'
/home/gwolf/vcs/pkg-ruby-extras/ruby-bdb/tests/hash.rb:387:in `new'
/home/gwolf/vcs/pkg-ruby-extras/ruby-bdb/tests/hash.rb:387:in `open'
/home/gwolf/vcs/pkg-ruby-extras/ruby-bdb/tests/hash.rb:387:in `test_18_hash_delete'
2) Error:
test_18_index(TestHash):
BDB::Fatal: closed DB
/home/gwolf/vcs/pkg-ruby-extras/ruby-bdb/tests/hash.rb:400:in `index'
/home/gwolf/vcs/pkg-ruby-extras/ruby-bdb/tests/hash.rb:400:in `block in test_18_index'
/home/gwolf/vcs/pkg-ruby-extras/ruby-bdb/tests/hash.rb:397:in `times'
/home/gwolf/vcs/pkg-ruby-extras/ruby-bdb/tests/hash.rb:397:in `test_18_index'
3) Error:
test_19_convert(TestHash):
BDB::Fatal: closed DB
/home/gwolf/vcs/pkg-ruby-extras/ruby-bdb/tests/hash.rb:409:in `to_hash'
/home/gwolf/vcs/pkg-ruby-extras/ruby-bdb/tests/hash.rb:409:in `test_19_convert'
22 tests, 7671 assertions, 0 failures, 3 errors, 0 skips
--------------------8<--------------------8<--------------------
And with Ruby 2.0:
--------------------8<--------------------8<--------------------
$ ruby2.0 -e '$:<<"../../build-area/ruby-bdb-0.6.6/debian/ruby-bdb/usr/lib/x86_64-linux-gnu/ruby/vendor_ruby/2.0.0/"; require "./tests/hash"'
VERSION of BDB is Berkeley DB 5.3.28: (September 9, 2013)
Run options:
# Running tests:
[19/22] TestHash#test_18_hash_delete = 0.00 s
1) Error:
test_18_hash_delete(TestHash):
RangeError: integer 3180312599820893546 too big to convert to `unsigned int'
/home/gwolf/vcs/pkg-ruby-extras/ruby-bdb/tests/hash.rb:387:in `initialize'
/home/gwolf/vcs/pkg-ruby-extras/ruby-bdb/tests/hash.rb:387:in `new'
/home/gwolf/vcs/pkg-ruby-extras/ruby-bdb/tests/hash.rb:387:in `open'
/home/gwolf/vcs/pkg-ruby-extras/ruby-bdb/tests/hash.rb:387:in `test_18_hash_delete'
/usr/lib/ruby/2.0.0/minitest/unit.rb:1301:in `run'
/usr/lib/ruby/2.0.0/test/unit/testcase.rb:17:in `run'
/usr/lib/ruby/2.0.0/minitest/unit.rb:919:in `block in _run_suite'
/usr/lib/ruby/2.0.0/minitest/unit.rb:912:in `map'
/usr/lib/ruby/2.0.0/minitest/unit.rb:912:in `_run_suite'
/usr/lib/ruby/2.0.0/test/unit.rb:657:in `block in _run_suites'
/usr/lib/ruby/2.0.0/test/unit.rb:655:in `each'
/usr/lib/ruby/2.0.0/test/unit.rb:655:in `_run_suites'
/usr/lib/ruby/2.0.0/minitest/unit.rb:867:in `_run_anything'
/usr/lib/ruby/2.0.0/minitest/unit.rb:1060:in `run_tests'
/usr/lib/ruby/2.0.0/minitest/unit.rb:1047:in `block in _run'
/usr/lib/ruby/2.0.0/minitest/unit.rb:1046:in `each'
/usr/lib/ruby/2.0.0/minitest/unit.rb:1046:in `_run'
/usr/lib/ruby/2.0.0/minitest/unit.rb:1035:in `run'
/usr/lib/ruby/2.0.0/test/unit.rb:21:in `run'
/usr/lib/ruby/2.0.0/test/unit.rb:774:in `run'
/usr/lib/ruby/2.0.0/test/unit.rb:366:in `block (2 levels) in autorun'
/usr/lib/ruby/2.0.0/test/unit.rb:27:in `run_once'
/usr/lib/ruby/2.0.0/test/unit.rb:365:in `block in autorun'
[20/22] TestHash#test_18_index/home/gwolf/vcs/pkg-ruby-extras/ruby-bdb/tests/hash.rb:400: warning: Hash#index is deprecated; use Hash#key
= 0.00 s
2) Error:
test_18_index(TestHash):
BDB::Fatal: closed DB
/home/gwolf/vcs/pkg-ruby-extras/ruby-bdb/tests/hash.rb:400:in `index'
/home/gwolf/vcs/pkg-ruby-extras/ruby-bdb/tests/hash.rb:400:in `block in test_18_index'
/home/gwolf/vcs/pkg-ruby-extras/ruby-bdb/tests/hash.rb:397:in `times'
/home/gwolf/vcs/pkg-ruby-extras/ruby-bdb/tests/hash.rb:397:in `test_18_index'
/usr/lib/ruby/2.0.0/minitest/unit.rb:1301:in `run'
/usr/lib/ruby/2.0.0/test/unit/testcase.rb:17:in `run'
/usr/lib/ruby/2.0.0/minitest/unit.rb:919:in `block in _run_suite'
/usr/lib/ruby/2.0.0/minitest/unit.rb:912:in `map'
/usr/lib/ruby/2.0.0/minitest/unit.rb:912:in `_run_suite'
/usr/lib/ruby/2.0.0/test/unit.rb:657:in `block in _run_suites'
/usr/lib/ruby/2.0.0/test/unit.rb:655:in `each'
/usr/lib/ruby/2.0.0/test/unit.rb:655:in `_run_suites'
/usr/lib/ruby/2.0.0/minitest/unit.rb:867:in `_run_anything'
/usr/lib/ruby/2.0.0/minitest/unit.rb:1060:in `run_tests'
/usr/lib/ruby/2.0.0/minitest/unit.rb:1047:in `block in _run'
/usr/lib/ruby/2.0.0/minitest/unit.rb:1046:in `each'
/usr/lib/ruby/2.0.0/minitest/unit.rb:1046:in `_run'
/usr/lib/ruby/2.0.0/minitest/unit.rb:1035:in `run'
/usr/lib/ruby/2.0.0/test/unit.rb:21:in `run'
/usr/lib/ruby/2.0.0/test/unit.rb:774:in `run'
/usr/lib/ruby/2.0.0/test/unit.rb:366:in `block (2 levels) in autorun'
/usr/lib/ruby/2.0.0/test/unit.rb:27:in `run_once'
/usr/lib/ruby/2.0.0/test/unit.rb:365:in `block in autorun'
[21/22] TestHash#test_19_convert = 0.00 s
3) Error:
test_19_convert(TestHash):
BDB::Fatal: closed DB
/home/gwolf/vcs/pkg-ruby-extras/ruby-bdb/tests/hash.rb:409:in `to_hash'
/home/gwolf/vcs/pkg-ruby-extras/ruby-bdb/tests/hash.rb:409:in `test_19_convert'
/usr/lib/ruby/2.0.0/minitest/unit.rb:1301:in `run'
/usr/lib/ruby/2.0.0/test/unit/testcase.rb:17:in `run'
/usr/lib/ruby/2.0.0/minitest/unit.rb:919:in `block in _run_suite'
/usr/lib/ruby/2.0.0/minitest/unit.rb:912:in `map'
/usr/lib/ruby/2.0.0/minitest/unit.rb:912:in `_run_suite'
/usr/lib/ruby/2.0.0/test/unit.rb:657:in `block in _run_suites'
/usr/lib/ruby/2.0.0/test/unit.rb:655:in `each'
/usr/lib/ruby/2.0.0/test/unit.rb:655:in `_run_suites'
/usr/lib/ruby/2.0.0/minitest/unit.rb:867:in `_run_anything'
/usr/lib/ruby/2.0.0/minitest/unit.rb:1060:in `run_tests'
/usr/lib/ruby/2.0.0/minitest/unit.rb:1047:in `block in _run'
/usr/lib/ruby/2.0.0/minitest/unit.rb:1046:in `each'
/usr/lib/ruby/2.0.0/minitest/unit.rb:1046:in `_run'
/usr/lib/ruby/2.0.0/minitest/unit.rb:1035:in `run'
/usr/lib/ruby/2.0.0/test/unit.rb:21:in `run'
/usr/lib/ruby/2.0.0/test/unit.rb:774:in `run'
/usr/lib/ruby/2.0.0/test/unit.rb:366:in `block (2 levels) in autorun'
/usr/lib/ruby/2.0.0/test/unit.rb:27:in `run_once'
/usr/lib/ruby/2.0.0/test/unit.rb:365:in `block in autorun'
Finished tests in 3.592808s, 6.1233 tests/s, 2132.8719 assertions/s.
22 tests, 7663 assertions, 0 failures, 3 errors, 0 skips
ruby -v: ruby 2.0.0p384 (2014-01-12) [x86_64-linux-gnu]
--------------------8<--------------------8<--------------------
Clearly, the offending code happens when opening the test database
/tmp/aa (whether the name should be hardcoded is a matter for another
bug report :-| )
Commenting out line 388 (which sets the 'set_h_hash' parameter to the
BDB instance to «proc {|a| a.hash}») allows the tests to pass.
According to the documentation, set_h_hash is meant to «specify a
hashing function». ./examples/func.rb is the only other file to make
use of this parameter, in exactly the same way as this test (and thus
will likely fail).
The most I can dig into the issue right now (as I'm tired and my brain
does not want to parse C↔Ruby interaction) is that behaviour related
to set_h_hash is found in lines 666-677 of src/common.h.
-- System Information:
Debian Release: jessie/sid
APT prefers unstable
APT policy: (500, 'unstable')
Architecture: amd64 (x86_64)
Kernel: Linux 3.13-1-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
More information about the Pkg-ruby-extras-maintainers
mailing list