[DRE-maint] Bug#888189: ruby-innertube: FTBFS on ruby2.5: undefined method mock

Chris West (Faux) debian at fau.xxx
Tue Jan 23 20:31:56 UTC 2018


Source: ruby-innertube
Version: 1.1.0-3
Severity: important
User: debian-ruby at lists.debian.org
Usertags: ruby2.5

Dear Maintainer,

This package fails to build against ruby2.5. Soon, there will
be a transition to ruby2.5, and this package will FTBFS in sid.

There may be some details on the wiki about common problems:
https://wiki.debian.org/Teams/Ruby/Ruby25Transition

Build log excerpt:

#<Thread:0x00005592cda3fec0@/build/ruby-innertube-1.1.0/spec/innertube_spec.rb:226 run> terminated with exception (report_on_exception is true):
/usr/lib/ruby/vendor_ruby/rspec/matchers.rb:967:in `method_missing': undefined method `mock' for #<RSpec::ExampleGroups::InnertubePool::ThreadedAccess::ClearingThePool:0x00005592cd812e90> (NoMethodError)
	from /usr/lib/ruby/vendor_ruby/rspec/core/example_group.rb:747:in `method_missing'
	from /build/ruby-innertube-1.1.0/spec/innertube_spec.rb:216:in `block (5 levels) in <top (required)>'
	from /build/ruby-innertube-1.1.0/lib/innertube.rb:131:in `block in take'
	from /build/ruby-innertube-1.1.0/lib/innertube.rb:127:in `synchronize'
	from /build/ruby-innertube-1.1.0/lib/innertube.rb:127:in `take'
	from /build/ruby-innertube-1.1.0/spec/innertube_spec.rb:227:in `block (6 levels) in <top (required)>'
#<Thread:0x00005592cd8103e8@/build/ruby-innertube-1.1.0/spec/innertube_spec.rb:226 run> terminated with exception (report_on_exception is true):
/usr/lib/ruby/vendor_ruby/rspec/matchers.rb:967:in `method_missing': undefined method `mock' for #<RSpec::ExampleGroups::InnertubePool::ThreadedAccess::ClearingThePool:0x00005592cd812e90> (NoMethodError)
	from /usr/lib/ruby/vendor_ruby/rspec/core/example_group.rb:747:in `method_missing'
	from /build/ruby-innertube-1.1.0/spec/innertube_spec.rb:216:in `block (5 levels) in <top (required)>'
	from /build/ruby-innertube-1.1.0/lib/innertube.rb:131:in `block in take'
	from /build/ruby-innertube-1.1.0/lib/innertube.rb:127:in `synchronize'
	from /build/ruby-innertube-1.1.0/lib/innertube.rb:127:in `take'
	from /build/ruby-innertube-1.1.0/spec/innertube_spec.rb:227:in `block (6 levels) in <top (required)>'
FF

Failures:

  1) Innertube::Pool threaded access stress test
     Failure/Error: RSpec.configuration.formatters.first.message(string)

     NoMethodError:
       undefined method `message' for "[103t:28r:11p:0.75833b] ":String
     # ./spec/support/verbose_formatter.rb:105:in `message'
     # ./spec/innertube_spec.rb:385:in `block (3 levels) in <top (required)>'
     # ./spec/support/timeout.rb:9:in `block (3 levels) in <top (required)>'
     # ./spec/support/timeout.rb:8:in `block (2 levels) in <top (required)>'

  2) Innertube::Pool threaded access iterates over a snapshot of all connections, even ones in use
     Failure/Error: RSpec.configuration.formatters.first.message(string)

     NoMethodError:
       undefined method `message' for "Waiting on 31 threads: ":String
     # ./spec/support/verbose_formatter.rb:105:in `message'
     # ./spec/innertube_spec.rb:7:in `wait_all'
     # ./spec/innertube_spec.rb:209:in `block (3 levels) in <top (required)>'
     # ./spec/support/timeout.rb:9:in `block (3 levels) in <top (required)>'
     # ./spec/support/timeout.rb:8:in `block (2 levels) in <top (required)>'

  3) Innertube::Pool threaded access iteration race-condition regression
     Failure/Error: RSpec.configuration.formatters.first.message(string)

     NoMethodError:
       undefined method `message' for "[24:2] ":String
     # ./spec/support/verbose_formatter.rb:105:in `message'
     # ./spec/innertube_spec.rb:310:in `block (3 levels) in <top (required)>'
     # ./spec/support/timeout.rb:9:in `block (3 levels) in <top (required)>'
     # ./spec/support/timeout.rb:8:in `block (2 levels) in <top (required)>'

  4) Innertube::Pool threaded access conditionally deleting members should remove them from the pool
     Failure/Error: n.times { message "X<#{q.pop}> " }

     Timeout::Error:
       execution expired
     # ./spec/innertube_spec.rb:280:in `pop'
     # ./spec/innertube_spec.rb:280:in `block (5 levels) in <top (required)>'
     # ./spec/innertube_spec.rb:280:in `times'
     # ./spec/innertube_spec.rb:280:in `block (4 levels) in <top (required)>'
     # ./spec/support/timeout.rb:9:in `block (3 levels) in <top (required)>'
     # ./spec/support/timeout.rb:8:in `block (2 levels) in <top (required)>'

  5) Innertube::Pool threaded access clearing the pool should remove all elements
     Failure/Error: n.times { message "S<#{q.pop}> " }

     Timeout::Error:
       execution expired
     # ./spec/innertube_spec.rb:238:in `pop'
     # ./spec/innertube_spec.rb:238:in `block (5 levels) in <top (required)>'
     # ./spec/innertube_spec.rb:238:in `times'
     # ./spec/innertube_spec.rb:238:in `block (4 levels) in <top (required)>'
     # ./spec/support/timeout.rb:9:in `block (3 levels) in <top (required)>'
     # ./spec/support/timeout.rb:8:in `block (2 levels) in <top (required)>'

  6) Innertube::Pool when BadResource is raised should remove the member from the pool
     Failure/Error:
       lambda do
         pool.take do |x|
           raise Innertube::Pool::BadResource
         end
       end.should raise_error(Innertube::Pool::BadResource)

       expected Innertube::Pool::BadResource, got #<NoMethodError: undefined method `mock' for #<RSpec::ExampleGroups::InnertubePool::WhenBadResourceIsRaised:0x00007f312c008570>> with backtrace:
         # ./spec/innertube_spec.rb:87:in `block (4 levels) in <top (required)>'
         # ./lib/innertube.rb:131:in `block in take'
         # ./lib/innertube.rb:127:in `synchronize'
         # ./lib/innertube.rb:127:in `take'
         # ./spec/innertube_spec.rb:93:in `block (4 levels) in <top (required)>'
         # ./spec/innertube_spec.rb:92:in `block (3 levels) in <top (required)>'
         # ./spec/support/timeout.rb:9:in `block (3 levels) in <top (required)>'
         # ./spec/support/timeout.rb:8:in `block (2 levels) in <top (required)>'
     # ./spec/innertube_spec.rb:92:in `block (3 levels) in <top (required)>'
     # ./spec/support/timeout.rb:9:in `block (3 levels) in <top (required)>'
     # ./spec/support/timeout.rb:8:in `block (2 levels) in <top (required)>'

2 deprecation warnings total

Deprecation Warnings:

 The VerboseFormatter formatter uses the deprecated formatter interface not supported directly by RSpec 3.  To continue to use this formatter you must install the `rspec-legacy_formatters` gem, which provides support for legacy formatters or upgrade the formatter to a compatible version.  Formatter added at: /build/ruby-innertube-1.1.0/spec/support/verbose_formatter.rb:111:in `block in <top (required)>'

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 /build/ruby-innertube-1.1.0/spec/innertube_spec.rb:28:in `block (4 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.

Finished in 1 minute 0.81 seconds (files took 0.11972 seconds to load)
13 examples, 6 failures

Failed examples:

rspec ./spec/innertube_spec.rb:380 # Innertube::Pool threaded access stress test
rspec ./spec/innertube_spec.rb:190 # Innertube::Pool threaded access iterates over a snapshot of all connections, even ones in use
rspec ./spec/innertube_spec.rb:297 # Innertube::Pool threaded access iteration race-condition regression
rspec ./spec/innertube_spec.rb:263 # Innertube::Pool threaded access conditionally deleting members should remove them from the pool
rspec ./spec/innertube_spec.rb:220 # Innertube::Pool threaded access clearing the pool should remove all elements
rspec ./spec/innertube_spec.rb:91 # Innertube::Pool when BadResource is raised should remove the member from the pool

Randomized with seed 13582

/usr/bin/ruby2.5 /usr/bin/rspec --pattern ./spec/\*_spec.rb failed
ERROR: Test "ruby2.5" failed. Exiting.
dh_auto_install: dh_ruby --install /build/ruby-innertube-1.1.0/debian/ruby-innertube returned exit code 1
debian/rules:16: recipe for target 'binary' failed
make: *** [binary] Error 1
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2

Full build log:
https://rbuild.fau.xxx/2018-01-23/ruby-innertube.log

Please fix it!

Cheers,
Chris.



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