I am currently in the process of upgrading a fairly large Rails application from Rails 3 --> Rails 4 (or maybe 5).
I am currently at a point where I have a Rails v4.0.13
application, running on Ruby v2.1.5
. The test suite is running on RSpec v3.5.2
, and is green (woohoo!), but unfortunately with some intermittent failures.
I'd ideally like to track down the cause of these failures before upgrading further, using rspec --bisect.
However, when I run rspec --bisect
(with or without other arguments), I get the following error:
Bisect started using options: ""
Running suite to find failures...
Bisect failed! Failed to get results from the spec run. Spec run output:
(druby://127.0.0.1:33858) /home/tom/.rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/drb/drb.rb:1588:in `perform_without_block': undefined method `run' for #<RSpec::Core::Bisect::Server:0x00000001e71430> (NoMethodError)
from (druby://127.0.0.1:33858) /home/tom/.rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/drb/drb.rb:1548:in `perform'
from (druby://127.0.0.1:33858) /home/tom/.rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/drb/drb.rb:1626:in `block (2 levels) in main_loop'
from (druby://127.0.0.1:33858) /home/tom/.rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/drb/drb.rb:1622:in `loop'
from (druby://127.0.0.1:33858) /home/tom/.rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/drb/drb.rb:1622:in `block in main_loop'
from /home/tom/.rvm/gems/ruby-2.1.5@<project-name>/gems/rspec-core-3.5.2/lib/rspec/core/drb.rb:23:in `run'
from /home/tom/.rvm/gems/ruby-2.1.5@<project-name>/gems/rspec-core-3.5.2/lib/rspec/core/invocations.rb:19:in `call'
from /home/tom/.rvm/gems/ruby-2.1.5@<project-name>/gems/rspec-core-3.5.2/lib/rspec/core/runner.rb:69:in `run'
from /home/tom/.rvm/gems/ruby-2.1.5@<project-name>/gems/rspec-core-3.5.2/lib/rspec/core/runner.rb:45:in `invoke'
from /home/tom/.rvm/gems/ruby-2.1.5@<project-name>/gems/rspec-core-3.5.2/exe/rspec:4:in `<main>'
Has anyone got a clue what could be causing this, or how I may be able to track down the cause?
Some things I've tried so far, to no avail:
- Downgrade rspec to a lower version (
>= 3.3.0
, since that's when--bisect
was added). - Upgrade ruby to a higher version (namely
2.3.1
). (This causes a few test failures which I'm yet to resolve, but still doesn't affect this--bisect
issue). - Clean up the system with
rvm gemset empty <project_name>; gem install bunder; bundle
, to purge all the pre-upgrade library code that was lying around.
It's also worth noting that I have other Rails projects on this computer, for which running --bisect
works just fine - so I don't think this can be a system library compatibility issue. I guess it must be something to do with the project configuration -- but what?! (I can't even see an application back-trace for clues??)
Edit: Without finding a resolution to this yet, I've continued upgrading the application. It is now running Rails v4.2.7
and Ruby v2.3.1
, with all specs passing (but still with some ordering issue). The error message when running rspec --bisect
remains unchanged.