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.

Reply via email to