[DRE-maint] Bug#923828: ruby-riddle: FTBFS randomly (failing tests)

Santiago Vila sanvila at debian.org
Tue Mar 5 19:09:58 GMT 2019


Package: src:ruby-riddle
Version: 2.3.1-1
Severity: important
Tags: ftbfs

Dear maintainer:

I tried to build this package in buster but it failed:

--------------------------------------------------------------------------------
[...]
 debian/rules build-indep
dh build-indep --buildsystem=ruby --with ruby
   dh_update_autotools_config -i -O--buildsystem=ruby
   dh_autoreconf -i -O--buildsystem=ruby
   dh_auto_configure -i -O--buildsystem=ruby
	dh_ruby --configure
   dh_auto_build -i -O--buildsystem=ruby
	dh_ruby --build
   dh_ruby --build
   dh_auto_test -i -O--buildsystem=ruby
	dh_ruby --test
   create-stamp debian/debhelper-build-stamp
 fakeroot debian/rules binary-indep
dh binary-indep --buildsystem=ruby --with ruby
   dh_testroot -i -O--buildsystem=ruby
   dh_prep -i -O--buildsystem=ruby
   dh_auto_install -i -O--buildsystem=ruby
	dh_ruby --install /<<PKGBUILDDIR>>/debian/ruby-riddle
   dh_ruby --install
Invalid gemspec in [riddle.gemspec]: No such file or directory - git

┌──────────────────────────────────────────────────────────────────────────────┐
│ Install files                                                                │
└──────────────────────────────────────────────────────────────────────────────┘

install -d /<<PKGBUILDDIR>>/debian/ruby-riddle/usr/bin
install -D -m755 /<<PKGBUILDDIR>>/bin/loadsphinx /<<PKGBUILDDIR>>/debian/ruby-riddle/usr/bin/loadsphinx
install -d /<<PKGBUILDDIR>>/debian/ruby-riddle/usr/lib/ruby/vendor_ruby
install -D -m644 /<<PKGBUILDDIR>>/lib/riddle.rb /<<PKGBUILDDIR>>/debian/ruby-riddle/usr/lib/ruby/vendor_ruby/riddle.rb
install -D -m644 /<<PKGBUILDDIR>>/lib/riddle/query.rb /<<PKGBUILDDIR>>/debian/ruby-riddle/usr/lib/ruby/vendor_ruby/riddle/query.rb
install -D -m644 /<<PKGBUILDDIR>>/lib/riddle/1.10/client.rb /<<PKGBUILDDIR>>/debian/ruby-riddle/usr/lib/ruby/vendor_ruby/riddle/1.10/client.rb
install -D -m644 /<<PKGBUILDDIR>>/lib/riddle/0.9.9/configuration/searchd.rb /<<PKGBUILDDIR>>/debian/ruby-riddle/usr/lib/ruby/vendor_ruby/riddle/0.9.9/configuration/searchd.rb
install -D -m644 /<<PKGBUILDDIR>>/lib/riddle/0.9.9/client/filter.rb /<<PKGBUILDDIR>>/debian/ruby-riddle/usr/lib/ruby/vendor_ruby/riddle/0.9.9/client/filter.rb
install -D -m644 /<<PKGBUILDDIR>>/lib/riddle/0.9.9/client.rb /<<PKGBUILDDIR>>/debian/ruby-riddle/usr/lib/ruby/vendor_ruby/riddle/0.9.9/client.rb
install -D -m644 /<<PKGBUILDDIR>>/lib/riddle/1.10.rb /<<PKGBUILDDIR>>/debian/ruby-riddle/usr/lib/ruby/vendor_ruby/riddle/1.10.rb
install -D -m644 /<<PKGBUILDDIR>>/lib/riddle/0.9.9.rb /<<PKGBUILDDIR>>/debian/ruby-riddle/usr/lib/ruby/vendor_ruby/riddle/0.9.9.rb
install -D -m644 /<<PKGBUILDDIR>>/lib/riddle/query/delete.rb /<<PKGBUILDDIR>>/debian/ruby-riddle/usr/lib/ruby/vendor_ruby/riddle/query/delete.rb
install -D -m644 /<<PKGBUILDDIR>>/lib/riddle/query/insert.rb /<<PKGBUILDDIR>>/debian/ruby-riddle/usr/lib/ruby/vendor_ruby/riddle/query/insert.rb
install -D -m644 /<<PKGBUILDDIR>>/lib/riddle/query/select.rb /<<PKGBUILDDIR>>/debian/ruby-riddle/usr/lib/ruby/vendor_ruby/riddle/query/select.rb
install -D -m644 /<<PKGBUILDDIR>>/lib/riddle/auto_version.rb /<<PKGBUILDDIR>>/debian/ruby-riddle/usr/lib/ruby/vendor_ruby/riddle/auto_version.rb
install -D -m644 /<<PKGBUILDDIR>>/lib/riddle/configuration/index_settings.rb /<<PKGBUILDDIR>>/debian/ruby-riddle/usr/lib/ruby/vendor_ruby/riddle/configuration/index_settings.rb
install -D -m644 /<<PKGBUILDDIR>>/lib/riddle/configuration/source.rb /<<PKGBUILDDIR>>/debian/ruby-riddle/usr/lib/ruby/vendor_ruby/riddle/configuration/source.rb
install -D -m644 /<<PKGBUILDDIR>>/lib/riddle/configuration/searchd.rb /<<PKGBUILDDIR>>/debian/ruby-riddle/usr/lib/ruby/vendor_ruby/riddle/configuration/searchd.rb
install -D -m644 /<<PKGBUILDDIR>>/lib/riddle/configuration/index.rb /<<PKGBUILDDIR>>/debian/ruby-riddle/usr/lib/ruby/vendor_ruby/riddle/configuration/index.rb
install -D -m644 /<<PKGBUILDDIR>>/lib/riddle/configuration/section.rb /<<PKGBUILDDIR>>/debian/ruby-riddle/usr/lib/ruby/vendor_ruby/riddle/configuration/section.rb
install -D -m644 /<<PKGBUILDDIR>>/lib/riddle/configuration/tsv_source.rb /<<PKGBUILDDIR>>/debian/ruby-riddle/usr/lib/ruby/vendor_ruby/riddle/configuration/tsv_source.rb
install -D -m644 /<<PKGBUILDDIR>>/lib/riddle/configuration/realtime_index.rb /<<PKGBUILDDIR>>/debian/ruby-riddle/usr/lib/ruby/vendor_ruby/riddle/configuration/realtime_index.rb
install -D -m644 /<<PKGBUILDDIR>>/lib/riddle/configuration/remote_index.rb /<<PKGBUILDDIR>>/debian/ruby-riddle/usr/lib/ruby/vendor_ruby/riddle/configuration/remote_index.rb
install -D -m644 /<<PKGBUILDDIR>>/lib/riddle/configuration/distributed_index.rb /<<PKGBUILDDIR>>/debian/ruby-riddle/usr/lib/ruby/vendor_ruby/riddle/configuration/distributed_index.rb
install -D -m644 /<<PKGBUILDDIR>>/lib/riddle/configuration/xml_source.rb /<<PKGBUILDDIR>>/debian/ruby-riddle/usr/lib/ruby/vendor_ruby/riddle/configuration/xml_source.rb
install -D -m644 /<<PKGBUILDDIR>>/lib/riddle/configuration/common.rb /<<PKGBUILDDIR>>/debian/ruby-riddle/usr/lib/ruby/vendor_ruby/riddle/configuration/common.rb
install -D -m644 /<<PKGBUILDDIR>>/lib/riddle/configuration/parser.rb /<<PKGBUILDDIR>>/debian/ruby-riddle/usr/lib/ruby/vendor_ruby/riddle/configuration/parser.rb
install -D -m644 /<<PKGBUILDDIR>>/lib/riddle/configuration/sql_source.rb /<<PKGBUILDDIR>>/debian/ruby-riddle/usr/lib/ruby/vendor_ruby/riddle/configuration/sql_source.rb
install -D -m644 /<<PKGBUILDDIR>>/lib/riddle/configuration/indexer.rb /<<PKGBUILDDIR>>/debian/ruby-riddle/usr/lib/ruby/vendor_ruby/riddle/configuration/indexer.rb
install -D -m644 /<<PKGBUILDDIR>>/lib/riddle/configuration/template_index.rb /<<PKGBUILDDIR>>/debian/ruby-riddle/usr/lib/ruby/vendor_ruby/riddle/configuration/template_index.rb
install -D -m644 /<<PKGBUILDDIR>>/lib/riddle/execute_command.rb /<<PKGBUILDDIR>>/debian/ruby-riddle/usr/lib/ruby/vendor_ruby/riddle/execute_command.rb
install -D -m644 /<<PKGBUILDDIR>>/lib/riddle/2.1.0.rb /<<PKGBUILDDIR>>/debian/ruby-riddle/usr/lib/ruby/vendor_ruby/riddle/2.1.0.rb
install -D -m644 /<<PKGBUILDDIR>>/lib/riddle/client/response.rb /<<PKGBUILDDIR>>/debian/ruby-riddle/usr/lib/ruby/vendor_ruby/riddle/client/response.rb
install -D -m644 /<<PKGBUILDDIR>>/lib/riddle/client/filter.rb /<<PKGBUILDDIR>>/debian/ruby-riddle/usr/lib/ruby/vendor_ruby/riddle/client/filter.rb
install -D -m644 /<<PKGBUILDDIR>>/lib/riddle/client/message.rb /<<PKGBUILDDIR>>/debian/ruby-riddle/usr/lib/ruby/vendor_ruby/riddle/client/message.rb
install -D -m644 /<<PKGBUILDDIR>>/lib/riddle/0.9.8.rb /<<PKGBUILDDIR>>/debian/ruby-riddle/usr/lib/ruby/vendor_ruby/riddle/0.9.8.rb
install -D -m644 /<<PKGBUILDDIR>>/lib/riddle/command_result.rb /<<PKGBUILDDIR>>/debian/ruby-riddle/usr/lib/ruby/vendor_ruby/riddle/command_result.rb
install -D -m644 /<<PKGBUILDDIR>>/lib/riddle/2.0.1.rb /<<PKGBUILDDIR>>/debian/ruby-riddle/usr/lib/ruby/vendor_ruby/riddle/2.0.1.rb
install -D -m644 /<<PKGBUILDDIR>>/lib/riddle/2.0.1/client.rb /<<PKGBUILDDIR>>/debian/ruby-riddle/usr/lib/ruby/vendor_ruby/riddle/2.0.1/client.rb
install -D -m644 /<<PKGBUILDDIR>>/lib/riddle/command_failed_error.rb /<<PKGBUILDDIR>>/debian/ruby-riddle/usr/lib/ruby/vendor_ruby/riddle/command_failed_error.rb
install -D -m644 /<<PKGBUILDDIR>>/lib/riddle/controller.rb /<<PKGBUILDDIR>>/debian/ruby-riddle/usr/lib/ruby/vendor_ruby/riddle/controller.rb
install -D -m644 /<<PKGBUILDDIR>>/lib/riddle/configuration.rb /<<PKGBUILDDIR>>/debian/ruby-riddle/usr/lib/ruby/vendor_ruby/riddle/configuration.rb
install -D -m644 /<<PKGBUILDDIR>>/lib/riddle/client.rb /<<PKGBUILDDIR>>/debian/ruby-riddle/usr/lib/ruby/vendor_ruby/riddle/client.rb
Not rewriting shebang line of /<<PKGBUILDDIR>>/debian/ruby-riddle/usr/bin/loadsphinx

┌──────────────────────────────────────────────────────────────────────────────┐
│ Install Rubygems integration metadata                                        │
└──────────────────────────────────────────────────────────────────────────────┘

generating gemspec at /<<PKGBUILDDIR>>/debian/ruby-riddle/usr/share/rubygems-integration/all/specifications/riddle-2.3.1.gemspec
/usr/bin/ruby2.5 /usr/bin/gem2deb-test-runner

┌──────────────────────────────────────────────────────────────────────────────┐
│ Checking Rubygems dependency resolution on ruby2.5                           │
└──────────────────────────────────────────────────────────────────────────────┘

Invalid gemspec in [riddle.gemspec]: No such file or directory - git
GEM_PATH=debian/ruby-riddle/usr/share/rubygems-integration/all:/var/lib/gems/2.5.0:/usr/lib/x86_64-linux-gnu/rubygems-integration/2.5.0:/usr/share/rubygems-integration/2.5.0:/usr/share/rubygems-integration/all ruby2.5 -e gem\ \"riddle\"

┌──────────────────────────────────────────────────────────────────────────────┐
│ Run tests for ruby2.5 from debian/ruby-tests.rake                            │
└──────────────────────────────────────────────────────────────────────────────┘

RUBYLIB=/<<PKGBUILDDIR>>/debian/ruby-riddle/usr/lib/ruby/vendor_ruby:. GEM_PATH=debian/ruby-riddle/usr/share/rubygems-integration/all:/var/lib/gems/2.5.0:/usr/lib/x86_64-linux-gnu/rubygems-integration/2.5.0:/usr/share/rubygems-integration/2.5.0:/usr/share/rubygems-integration/all ruby2.5 -S rake -f debian/ruby-tests.rake
./debian/start_mysqld_and_run.sh ruby2.5 -S rspec
Installing MariaDB/MySQL system tables in '/tmp/tmp.UAP9HKpnaI' ...
OK

To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your system


PLEASE REMEMBER TO SET A PASSWORD FOR THE MariaDB root USER !
To do so, start the server, then issue the following commands:

'/usr/bin/mysqladmin' -u root password 'new-password'
'/usr/bin/mysqladmin' -u root -h  password 'new-password'

Alternatively you can run:
'/usr/bin/mysql_secure_installation'

which will also give you the option of removing the test
databases and anonymous user created by default.  This is
strongly recommended for production servers.

See the MariaDB Knowledgebase at http://mariadb.com/kb or the
MySQL manual for more instructions.

You can start the MariaDB daemon with:
cd '/usr' ; /usr/bin/mysqld_safe --datadir='/tmp/tmp.UAP9HKpnaI'

You can test the MariaDB daemon with mysql-test-run.pl
cd '/usr/mysql-test' ; perl mysql-test-run.pl

Please report any problems at http://mariadb.org/jira

The latest information about MariaDB is available at http://mariadb.org/.
You can find additional information about the MySQL part at:
http://dev.mysql.com
Consider joining MariaDB's strong and vibrant community:
https://mariadb.org/get-involved/

pinging mysqld./usr/bin/mysqladmin: connect to server at 'localhost' failed
error: 'Can't connect to local MySQL server through socket '/tmp/tmp.UAP9HKpnaI/mysql.sock' (2)'
Check that mysqld is running and that the socket: '/tmp/tmp.UAP9HKpnaI/mysql.sock' exists!
2019-03-05 13:20:14 0 [Note] Using unique option prefix 'skip-grant' is error-prone and can break in the future. Please use the full name 'skip-grant-tables' instead.
2019-03-05 13:20:14 0 [Note] /usr/sbin/mysqld (mysqld 10.3.12-MariaDB-2) starting as process 11895 ...
2019-03-05 13:20:14 0 [Note] InnoDB: Using Linux native AIO
2019-03-05 13:20:14 0 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
2019-03-05 13:20:14 0 [Note] InnoDB: Uses event mutexes
2019-03-05 13:20:14 0 [Note] InnoDB: Compressed tables use zlib 1.2.11
2019-03-05 13:20:14 0 [Note] InnoDB: Number of pools: 1
2019-03-05 13:20:14 0 [Note] InnoDB: Using SSE2 crc32 instructions
2019-03-05 13:20:14 0 [Note] InnoDB: Initializing buffer pool, total size = 128M, instances = 1, chunk size = 128M
2019-03-05 13:20:14 0 [Note] InnoDB: Completed initialization of buffer pool
2019-03-05 13:20:14 0 [Note] InnoDB: If the mysqld execution user is authorized, page cleaner thread priority can be changed. See the man page of setpriority().
2019-03-05 13:20:14 0 [Note] InnoDB: 128 out of 128 rollback segments are active.
2019-03-05 13:20:14 0 [Note] InnoDB: Creating shared tablespace for temporary tables
2019-03-05 13:20:14 0 [Note] InnoDB: Setting file './ibtmp1' size to 12 MB. Physically writing the file full; Please wait ...
2019-03-05 13:20:14 0 [Note] InnoDB: File './ibtmp1' size is now 12 MB.
2019-03-05 13:20:14 0 [Note] InnoDB: Waiting for purge to start
2019-03-05 13:20:14 0 [Note] InnoDB: 10.3.12 started; log sequence number 1630815; transaction id 21
2019-03-05 13:20:14 0 [Note] InnoDB: Loading buffer pool(s) from /tmp/tmp.UAP9HKpnaI/ib_buffer_pool
2019-03-05 13:20:14 0 [Note] Plugin 'FEEDBACK' is disabled.
2019-03-05 13:20:14 0 [Note] InnoDB: Buffer pool(s) load completed at 190305 13:20:14
2019-03-05 13:20:14 0 [Note] Reading of all Master_info entries succeded
2019-03-05 13:20:14 0 [Note] Added new Master_info '' to hash table
2019-03-05 13:20:14 0 [Note] /usr/sbin/mysqld: ready for connections.
Version: '10.3.12-MariaDB-2'  socket: '/tmp/tmp.UAP9HKpnaI/mysql.sock'  port: 0  Debian buildd-unstable
mysqld is alive
Run options: include {:wip=>true}

All examples were filtered out; ignoring {:wip=>true}
.........................F..WARNING: Using the `raise_error` matcher without providing a specific error or message risks false positives, since `raise_error` will match when Ruby raises a `NoMethodError`, `NameError` or `ArgumentError`, potentially allowing the expectation to pass without even executing the method you are intending to call. Actual error raised was #<RuntimeError: Already Connected>. Instead consider providing a specific error class or message. This message can be suppressed by setting: `RSpec::Expectations.configuration.on_potential_false_positives = :nothing`. Called from /<<PKGBUILDDIR>>/spec/functional/persistance_spec.rb:12:in `block (2 levels) in <top (required)>'.
.WARNING: Using the `raise_error` matcher without providing a specific error or message risks false positives, since `raise_error` will match when Ruby raises a `NoMethodError`, `NameError` or `ArgumentError`, potentially allowing the expectation to pass without even executing the method you are intending to call. Actual error raised was #<RuntimeError: Not Connected>. Instead consider providing a specific error class or message. This message can be suppressed by setting: `RSpec::Expectations.configuration.on_potential_false_positives = :nothing`. Called from /<<PKGBUILDDIR>>/spec/functional/persistance_spec.rb:17:in `block (2 levels) in <top (required)>'.
.....................................................................................................................................................................................................................................................

Failures:

  1) Merging indices merges in new records
     Failure/Error: expect(record_matches?("article_delta", "pancakes")).to eq(true)

       expected: true
            got: false

       (compared using ==)
     # ./spec/functional/merging_spec.rb:40:in `block (2 levels) in <top (required)>'

Deprecation Warnings:

Using `should` from rspec-expectations' old `:should` syntax without explicitly enabling the syntax is deprecated. Use the new `:expect` syntax or explicitly enable `:should` with `config.expect_with(:rspec) { |c| c.syntax = :should }` instead. Called from /<<PKGBUILDDIR>>/spec/functional/connection_spec.rb:19:in `block (3 levels) in <top (required)>'.

Using `stub` from rspec-mocks' old `:should` syntax without explicitly enabling the syntax is deprecated. Use the new `:expect` syntax or explicitly enable `:should` instead. Called from /<<PKGBUILDDIR>>/spec/riddle/auto_version_spec.rb:8:in `block (3 levels) in <top (required)>'.


If you need more of the backtrace for any of these deprecations to
identify where to make the necessary changes, you can configure
`config.raise_errors_for_deprecations!`, and it will turn the
deprecation warnings into errors, giving you the full backtrace.

2 deprecation warnings total

Finished in 29.79 seconds (files took 1.96 seconds to load)
274 examples, 1 failure

Failed examples:

rspec ./spec/functional/merging_spec.rb:30 # Merging indices merges in new records

2019-03-05 13:20:49 0 [Note] /usr/sbin/mysqld (initiated by: [root] @ localhost []): Normal shutdown
2019-03-05 13:20:49 0 [Note] InnoDB: FTS optimize thread exiting.
2019-03-05 13:20:49 0 [Note] InnoDB: Starting shutdown...
2019-03-05 13:20:49 0 [Note] InnoDB: Dumping buffer pool(s) to /tmp/tmp.UAP9HKpnaI/ib_buffer_pool
2019-03-05 13:20:49 0 [Note] InnoDB: Buffer pool(s) dump completed at 190305 13:20:49
2019-03-05 13:20:50 0 [Note] InnoDB: Shutdown completed; log sequence number 6903543; transaction id 59
2019-03-05 13:20:50 0 [Note] InnoDB: Removed temporary tablespace data file: "ibtmp1"
2019-03-05 13:20:50 0 [Note] /usr/sbin/mysqld: Shutdown complete

rake aborted!
Command failed with status (1): [./debian/start_mysqld_and_run.sh ruby2.5 -...]
/<<PKGBUILDDIR>>/debian/ruby-tests.rake:5:in `block in <top (required)>'
Tasks: TOP => default
(See full trace by running task with --trace)
ERROR: Test "ruby2.5" failed. Exiting.
dh_auto_install: dh_ruby --install /<<PKGBUILDDIR>>/debian/ruby-riddle returned exit code 1
make: *** [debian/rules:6: binary-indep] Error 1
dpkg-buildpackage: error: fakeroot debian/rules binary-indep subprocess returned exit status 2
--------------------------------------------------------------------------------

The build was made in one of my autobuilders with "dpkg-buildpackage -A".

The failure happens randomly, i.e. sometimes it fails, sometimes it does not,
so I don't have a "recipe" to reproduce it as such, but the "randomness"
is reproducible in my autobuilders (i.e. when I build it a lot of times,
there are always some failed builds).

I've put several failed build logs here for reference:

https://people.debian.org/~sanvila/build-logs/ruby-riddle/

If you need a test machine to reproduce this, please contact me
privately and I could provide ssh access to a machine where it happens
(caveat: randomly and maybe with low probability).

If this is really a bug in one of the build-depends, please use reassign and affects,
so that this is still visible in the BTS web page for this package.

Thanks.



More information about the Pkg-ruby-extras-maintainers mailing list