[DRE-maint] Bug#846020: ruby-clockwork: FTBFS (Clockwork::DatabaseEvents::SyncPerformer::setup::when fails)

Santiago Vila sanvila at debian.org
Sun Nov 27 21:39:01 UTC 2016


Package: src:ruby-clockwork
Version: 1.2.0-3
Severity: serious

Dear maintainer:

I tried to build this package in stretch with "dpkg-buildpackage -A"
(which is what the "Arch: all" autobuilder would do to build it)
but it failed:

--------------------------------------------------------------------------------
[...]
 debian/rules build-indep
dh build-indep --buildsystem=ruby --with ruby
   dh_testdir -i -O--buildsystem=ruby
   dh_update_autotools_config -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
 fakeroot debian/rules binary-indep
dh binary-indep --buildsystem=ruby --with ruby

[... snipped ...]

Clockwork::Event::#thread?::manager config thread option set to true#test_0001_is true = 0.00 s = .
Clockwork::Manager::max_threads#test_0001_should warn when an event tries to generate threads more than max_threads = 0.00 s = .
Clockwork::Manager::max_threads#test_0002_should not warn when thread is managed by others = 0.00 s = .
Clockwork::DatabaseEvents::SyncPerformer::setup::arguments#test_0001_raises argument error if model is not set = 0.00 s = .
Clockwork::DatabaseEvents::SyncPerformer::setup::arguments#test_0002_raises argument error if every is not set = 0.00 s = .
Clockwork#test_0003_should pass event without modification to handler = 0.00 s = .
Clockwork#test_0005_should pass all arguments to every = 0.00 s = .
Clockwork#test_0004_should not run anything after reset = 0.00 s = .
Clockwork#test_0002_should log event correctly = 0.00 s = .
Clockwork#test_0006_support module re-open style = 0.00 s = .
Clockwork#test_0001_should run events with configured logger = 0.00 s = .
Clockwork::Manager::callbacks#test_0005_should run even jobs only = 0.00 s = .
Clockwork::Manager::callbacks#test_0001_should not accept unknown callback name = 0.00 s = .
Clockwork::Manager::callbacks#test_0004_should run before_run twice if two events are registered = 0.00 s = .
Clockwork::Manager::callbacks#test_0002_should run before_tick callback once on tick = 0.00 s = .
Clockwork::Manager::callbacks#test_0003_should not run events if before_tick returns false = 0.00 s = .
Clockwork::Manager::callbacks#test_0006_should run after_run callback for each event = 0.00 s = .
Clockwork::Manager::callbacks#test_0007_should run after_tick callback once = 0.00 s = .
Clockwork::Manager:::if option#test_0002_:if false then never run = 0.00 s = .
Clockwork::Manager:::if option#test_0001_:if true then always run = 0.00 s = .
Clockwork::Manager:::if option#test_0003_:if the first day of month = 0.00 s = .
Clockwork::Manager:::if option#test_0005_:if is not callable then raise ArgumentError = 0.00 s = .
Clockwork::Manager:::if option#test_0004_:if it is compared to a time with zone = 0.01 s = .
Clockwork::Manager:::tz option#test_0005_should be able to override a default timezone in an event = 0.01 s = .
Clockwork::Manager:::tz option#test_0002_should be able to specify a different timezone than local = 0.00 s = .
Clockwork::Manager:::tz option#test_0004_should be able to configure a default timezone to use for all events = 0.00 s = .
Clockwork::Manager:::tz option#test_0001_time zone is not set by default = 0.00 s = .
Clockwork::Manager:::tz option#test_0003_should be able to specify a different timezone than local for multiple times = 0.00 s = .

Finished in 0.909811s, 93.4260 runs/s, 165.9686 assertions/s.

  1) Failure:
Clockwork::DatabaseEvents::SyncPerformer::setup::when database reload frequency is greater than model frequency period#test_0010_updates event at with new at [/<<PKGBUILDDIR>>/test/database_events/sync_performer_test.rb:161]:
Expected: 1
  Actual: 0

85 runs, 151 assertions, 1 failures, 0 errors, 0 skips
rake aborted!
Command failed with status (1): [ruby -I"test"  "/usr/lib/ruby/vendor_ruby/rake/rake_test_loader.rb" "test/at_test.rb" "test/clockwork_test.rb" "test/database_events/sync_performer_test.rb" "test/event_test.rb" "test/manager_test.rb" "test/database_events/test_helpers.rb" -v]

Tasks: TOP => default
(See full trace by running task with --trace)
ERROR: Test "ruby2.3" failed. Exiting.
dh_auto_install: dh_ruby --install /<<PKGBUILDDIR>>/debian/ruby-clockwork returned exit code 1
debian/rules:6: recipe for target 'binary-indep' failed
make: *** [binary-indep] Error 1
dpkg-buildpackage: error: fakeroot debian/rules binary-indep gave error exit status 2
--------------------------------------------------------------------------------

The failure happens randomly. Sometimes it fails, sometimes it does not.

It does happen, in fact, with a very low probability, but it also
happened at least once in the reproducible builds autobuilder:

https://tests.reproducible-builds.org/debian/logs/testing/amd64/ruby-clockwork_1.2.0-3.build2.log.gz

The test seems to measure that a certain process takes a certain
amount of time (reload frecuency), but that's not a good idea for a
Debian source package, because nowhere is guaranteed that the CPU
performance remains constant during package build. The autobuilder may
well be doing other things in parallel, and there is no
build-depends-like field to ask for an idle machine.

Thanks.



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