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.