Comments
-
Greg Hurrell
FWIW, other examples (not involving Steak, Culerity, Celerity etc) pass the same regardless of whether I do:
rspec spec/mailers
or:
bundle exec rspec spec/mailers
-
Greg Hurrell
Even stranger:
bundle exec rspec spec/acceptance/sessions_spec.rb
passes, but
bundle exec rspec spec/acceptance
is now hanging on the specs in
sessions_spec
until I CTRL-C it, then I get the broken pipe errors seen above, and also this one:1) Logging in to the site: logging in and seeing a flash Failure/Error: visit '/login' You have a nil object when you didn't expect it! You might have expected an instance of Array. The error occurred while evaluating nil.first # /Library/Ruby/Gems/1.8/gems/culerity-0.2.10/lib/culerity/remote_object_proxy.rb:51:in `process_result' # /Library/Ruby/Gems/1.8/gems/culerity-0.2.10/lib/culerity/remote_object_proxy.rb:40:in `send_remote' # /Library/Ruby/Gems/1.8/gems/culerity-0.2.10/lib/culerity/remote_object_proxy.rb:25:in `method_missing' # /Library/Ruby/Gems/1.8/gems/culerity-0.2.10/lib/culerity/remote_browser_proxy.rb:8:in `initialize' # /Library/Ruby/Gems/1.8/gems/capybara-0.3.8/lib/capybara/driver/culerity_driver.rb:17:in `new' # /Library/Ruby/Gems/1.8/gems/capybara-0.3.8/lib/capybara/driver/culerity_driver.rb:17:in `browser' # /Library/Ruby/Gems/1.8/gems/capybara-0.3.8/lib/capybara/driver/celerity_driver.rb:99:in `visit' # /Library/Ruby/Gems/1.8/gems/capybara-0.3.8/lib/capybara/dsl.rb:55:in `visit' # ./spec/acceptance/sessions_spec.rb:9:in `log_in' # ./spec/acceptance/sessions_spec.rb:16 # /Library/Ruby/Gems/1.8/gems/activesupport-3.0.0.beta4/lib/active_support/dependencies.rb:212:in `inject'
-
Greg Hurrell
Hmph.
bundle exec rspec spec/acceptance
Is not longer hanging consistently. I just ran it a few times without hanging. Then, in new terminal window, started hanging again.
-
Greg Hurrell
Ok, updated a few gems and what not. Current status:
rspec spec/acceptance
: always works
And seems we've now got consistent behavior across both methods of using Bundler:
-
rake spec:acceptance
: sometimes works, sometimes hangs indefinitely, always at same point (CTRL-C shows "broken pipe")-
running specific spec files (eg.
bundle exec rspec spec/acceptance/sessions_spec.rb
) exhibits the same behavior (sometimes works, sometimes hangs)
-
running specific spec files (eg.
-
bundle exec rspec spec/acceptance
: sometimes works, sometimes hangs indefinitely as above (when hanging, CTRL-C shows "broken pipe")
-
Greg Hurrell
One difference I note in the output between the non-hanging
rspec ...
invocation:*..*.[2010-06-28 10:34:47] INFO WEBrick 1.3.1 [2010-06-28 10:34:47] INFO ruby 1.8.7 (2009-06-12) [universal-darwin10.0] [2010-06-28 10:34:47] INFO WEBrick::HTTPServer#start: pid=14031 port=9887 .......
And the sometimes-hanging
bundle exec rspec ...
andrake spec:acceptance
invocations:*..*.[2010-06-28 10:35:11] INFO WEBrick 1.3.1 [2010-06-28 10:35:11] INFO ruby 1.8.7 (2009-06-12) [universal-darwin10.0] [2010-06-28 10:35:11] INFO WEBrick::HTTPServer#start: pid=14052 port=9887 JRuby limited openssl loaded. http://jruby.org/openssl gem install jruby-openssl for full support.
Obviously, at the system level I have done the
sudo jruby -S gem install jruby-openssl
thing, and perhaps that is why the specs always finish when running outside the context of Bundler.I wonder if adding
jruby-openssl
to the Gemfile with:require => nil
will at least get it into theLOAD_PATH
. -
Greg Hurrell
Adding it to the Gemfile does silence the warning, so evidently it is somehow getting made available via the LOAD_PATH, but we still see the unpredictable hanging.
-
Greg Hurrell
Seeing as I'd fixes some failing specs in Celerity itself by installing Mongrel, I tried the same by adding it to the Gemfile.
This immediately silenced WEBrick's chatty output in the spec output, but alas, the specs don't succeed:
*..*.FFFFFF.
The error we're seeing is:
1) Logging in to the site: logging in and seeing a flash Failure/Error: visit '/login' (eval):1:in `process_result': compile error (eval):1: Invalid char `\033' in expression (eval):1: syntax error, unexpected tIDENTIFIER, expecting ']' Could not find mongrel-1.1.5-java in any of the sources
So I try installing it within the JRuby environment:
sudo jruby -S gem install mongrel
But we still fail the same way.
I thought I'd try running
jruby -S bundle install
but that eventually bails on hitting a native (C) gem:Installing nokogiri (1.4.2) with native extensions /usr/local/jruby/lib/ruby/site_ruby/1.8/rubygems/installer.rb:482:in `build_extensions': ERROR: Failed to build gem native extension. (Gem::Installer::ExtensionBuildError) /usr/local/jruby/bin/jruby extconf.rb WARNING: JRuby does not support native extensions or the `mkmf' library. Check http://kenai.com/projects/jruby/pages/Home for alternatives. extconf.rb:10: uninitialized constant Config (NameError) Gem files will remain installed in /Users/wincent/.bundle/gems/nokogiri-1.4.2 for inspection. Results logged to /Users/wincent/.bundle/gems/nokogiri-1.4.2/ext/nokogiri/gem_make.out
-
Greg Hurrell
Comparing the LOAD_PATHs at the time of
spec_helper
evaluation:Initial LOAD_PATH without Bundler
/Users/wincent/trabajo/unversioned/wincent.dev/src/spec /Users/wincent/trabajo/unversioned/wincent.dev/src/lib /Library/Ruby/Gems/1.8/gems/json_pure-1.4.3/bin /Library/Ruby/Gems/1.8/gems/json_pure-1.4.3/lib /Library/Ruby/Gems/1.8/gems/gemcutter-0.5.0/bin /Library/Ruby/Gems/1.8/gems/gemcutter-0.5.0/lib /Library/Ruby/Gems/1.8/gems/rspec-core-2.0.0.beta.13/bin /Library/Ruby/Gems/1.8/gems/rspec-core-2.0.0.beta.13/lib /Library/Ruby/Gems/1.8/gems/diff-lcs-1.1.2/bin /Library/Ruby/Gems/1.8/gems/diff-lcs-1.1.2/lib /Library/Ruby/Gems/1.8/gems/rspec-expectations-2.0.0.beta.13/bin /Library/Ruby/Gems/1.8/gems/rspec-expectations-2.0.0.beta.13/lib /Library/Ruby/Site/1.8 /Library/Ruby/Site/1.8/powerpc-darwin10.0 /Library/Ruby/Site/1.8/universal-darwin10.0 /Library/Ruby/Site /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/vendor_ruby/1.8 /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/vendor_ruby/1.8/universal-darwin10.0 /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/vendor_ruby /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8 /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/powerpc-darwin10.0 /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin10.0 .
Note: this is the LOAD_PATH at the start of the
spec_helper
, just after the Rails environment has been required. See further down for the much longer list which corresponds to the end of thespec_helper
(ie. after "rspec/rails" and so on have been required.Initial LOAD_PATH with Bundler
/Users/wincent/.bundle/gems/wikitext-2.0/lib /Users/wincent/.bundle/gems/wikitext-2.0/ext /Users/wincent/.bundle/bundler/gems/steak-77d6391/lib /Users/wincent/.bundle/gems/rspec-rails-2.0.0.beta.14.1/lib /Library/Ruby/Gems/1.8/gems/webrat-0.7.1/lib /Users/wincent/.bundle/gems/rspec-2.0.0.beta.14/lib /Users/wincent/.bundle/gems/rspec-mocks-2.0.0.beta.14/lib /Users/wincent/.bundle/gems/rspec-expectations-2.0.0.beta.14/lib /Users/wincent/.bundle/gems/rspec-core-2.0.0.beta.14/lib /Library/Ruby/Gems/1.8/gems/rr-0.10.11/lib /Library/Ruby/Gems/1.8/gems/mysql-2.8.1/ext /Library/Ruby/Gems/1.8/gems/mysql-2.8.1/lib /Library/Ruby/Gems/1.8/gems/mkdtemp-1.1.1/lib /Library/Ruby/Gems/1.8/gems/mkdtemp-1.1.1/ext /Users/wincent/.bundle/gems/launchy-0.3.5/lib /Users/wincent/.bundle/gems/jruby-openssl-0.7/lib /Users/wincent/.bundle/gems/hpricot-0.8.2/lib /Users/wincent/.bundle/gems/haml-3.0.12/lib /Users/wincent/.bundle/gems/factory_girl_rails-1.0/lib /Library/Ruby/Gems/1.8/gems/rails-3.0.0.beta4/lib /Library/Ruby/Gems/1.8/gems/railties-3.0.0.beta4/lib /Users/wincent/.bundle/gems/thor-0.13.7/lib /Users/wincent/.bundle/gems/factory_girl-1.3.1/lib /Library/Ruby/Gems/1.8/gems/diff-lcs-1.1.2/lib /Users/wincent/.bundle/gems/database_cleaner-0.5.2/lib /Users/wincent/.bundle/gems/configuration-1.1.0/lib /Users/wincent/.bundle/gems/celerity-0.7.9/lib /Library/Ruby/Gems/1.8/gems/capybara-0.3.8/lib /Library/Ruby/Gems/1.8/gems/selenium-webdriver-0.0.24/remote/client/src/rb/lib /Library/Ruby/Gems/1.8/gems/selenium-webdriver-0.0.24/jobbie/src/rb/lib /Library/Ruby/Gems/1.8/gems/selenium-webdriver-0.0.24/chrome/src/rb/lib /Library/Ruby/Gems/1.8/gems/selenium-webdriver-0.0.24/firefox/src/rb/lib /Library/Ruby/Gems/1.8/gems/selenium-webdriver-0.0.24/common/src/rb/lib /Library/Ruby/Gems/1.8/gems/json_pure-1.4.3/lib /Library/Ruby/Gems/1.8/gems/ffi-0.6.3/ext /Library/Ruby/Gems/1.8/gems/ffi-0.6.3/lib /Library/Ruby/Gems/1.8/gems/nokogiri-1.4.2/lib /Users/wincent/.bundle/gems/culerity-0.2.10/lib /Users/wincent/.bundle/gems/activeresource-3.0.0.beta4/lib /Users/wincent/.bundle/gems/activerecord-3.0.0.beta4/lib /Users/wincent/.bundle/gems/arel-0.4.0/lib /Users/wincent/.bundle/gems/actionmailer-3.0.0.beta4/lib /Users/wincent/.bundle/gems/mail-2.2.5/lib /Users/wincent/.bundle/gems/treetop-1.4.8/lib /Users/wincent/.bundle/gems/polyglot-0.3.1/lib /Users/wincent/.bundle/gems/mime-types-1.16/lib /Users/wincent/.bundle/gems/actionpack-3.0.0.beta4/lib /Users/wincent/.bundle/gems/tzinfo-0.3.22/lib /Users/wincent/.bundle/gems/rack-test-0.5.4/lib /Users/wincent/.bundle/gems/rack-mount-0.6.6/lib /Users/wincent/.bundle/gems/rack-1.1.0/lib /Users/wincent/.bundle/gems/erubis-2.6.6/lib /Users/wincent/.bundle/gems/activemodel-3.0.0.beta4/lib /Users/wincent/.bundle/gems/i18n-0.4.1/lib /Users/wincent/.bundle/gems/builder-2.1.2/lib /Users/wincent/.bundle/gems/activesupport-3.0.0.beta4/lib /Users/wincent/.bundle/gems/abstract-1.0.0/lib /Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib lib spec /Library/Ruby/Gems/1.8/gems/bundler-1.0.0.beta.1/lib /Library/Ruby/Site/1.8 /Library/Ruby/Site/1.8/powerpc-darwin10.0 /Library/Ruby/Site/1.8/universal-darwin10.0 /Library/Ruby/Site /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/vendor_ruby/1.8 /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/vendor_ruby/1.8/universal-darwin10.0 /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/vendor_ruby /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8 /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/powerpc-darwin10.0 /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin10.0 .
Final LOAD_PATH without Bundler
/Users/wincent/.bundle/gems/haml-3.0.12/vendor/fssm/lib /Users/wincent/trabajo/unversioned/wincent.dev/src/app/controllers /Users/wincent/trabajo/unversioned/wincent.dev/src/app/helpers /Users/wincent/trabajo/unversioned/wincent.dev/src/app/mailers /Users/wincent/trabajo/unversioned/wincent.dev/src/app/models /Users/wincent/trabajo/unversioned/wincent.dev/src/app/sweepers /Users/wincent/trabajo/unversioned/wincent.dev/src/lib /Users/wincent/trabajo/unversioned/wincent.dev/src/vendor /Users/wincent/trabajo/unversioned/wincent.dev/src/vendor/plugins/rails_upgrade/lib /Users/wincent/.bundle/gems/wikitext-2.0/lib /Users/wincent/.bundle/gems/wikitext-2.0/ext /Users/wincent/.bundle/bundler/gems/steak-77d6391/lib /Users/wincent/.bundle/gems/rspec-rails-2.0.0.beta.14.1/lib /Library/Ruby/Gems/1.8/gems/webrat-0.7.1/lib /Users/wincent/.bundle/gems/rspec-2.0.0.beta.14/lib /Users/wincent/.bundle/gems/rspec-mocks-2.0.0.beta.14/lib /Users/wincent/.bundle/gems/rspec-expectations-2.0.0.beta.14/lib /Users/wincent/.bundle/gems/rspec-core-2.0.0.beta.14/lib /Library/Ruby/Gems/1.8/gems/rr-0.10.11/lib /Library/Ruby/Gems/1.8/gems/mysql-2.8.1/ext /Library/Ruby/Gems/1.8/gems/mysql-2.8.1/lib /Library/Ruby/Gems/1.8/gems/mkdtemp-1.1.1/lib /Library/Ruby/Gems/1.8/gems/mkdtemp-1.1.1/ext /Users/wincent/.bundle/gems/launchy-0.3.5/lib /Users/wincent/.bundle/gems/jruby-openssl-0.7/lib /Users/wincent/.bundle/gems/hpricot-0.8.2/lib /Users/wincent/.bundle/gems/haml-3.0.12/lib /Users/wincent/.bundle/gems/factory_girl_rails-1.0/lib /Library/Ruby/Gems/1.8/gems/rails-3.0.0.beta4/lib /Library/Ruby/Gems/1.8/gems/railties-3.0.0.beta4/lib /Users/wincent/.bundle/gems/thor-0.13.7/lib /Users/wincent/.bundle/gems/factory_girl-1.3.1/lib /Library/Ruby/Gems/1.8/gems/diff-lcs-1.1.2/lib /Users/wincent/.bundle/gems/database_cleaner-0.5.2/lib /Users/wincent/.bundle/gems/configuration-1.1.0/lib /Users/wincent/.bundle/gems/celerity-0.7.9/lib /Library/Ruby/Gems/1.8/gems/capybara-0.3.8/lib /Library/Ruby/Gems/1.8/gems/selenium-webdriver-0.0.24/remote/client/src/rb/lib /Library/Ruby/Gems/1.8/gems/selenium-webdriver-0.0.24/jobbie/src/rb/lib /Library/Ruby/Gems/1.8/gems/selenium-webdriver-0.0.24/chrome/src/rb/lib /Library/Ruby/Gems/1.8/gems/selenium-webdriver-0.0.24/firefox/src/rb/lib /Library/Ruby/Gems/1.8/gems/selenium-webdriver-0.0.24/common/src/rb/lib /Library/Ruby/Gems/1.8/gems/json_pure-1.4.3/lib /Library/Ruby/Gems/1.8/gems/ffi-0.6.3/ext /Library/Ruby/Gems/1.8/gems/ffi-0.6.3/lib /Library/Ruby/Gems/1.8/gems/nokogiri-1.4.2/lib /Library/Ruby/Gems/1.8/gems/culerity-0.2.10/lib /Library/Ruby/Gems/1.8/gems/activeresource-3.0.0.beta4/lib /Library/Ruby/Gems/1.8/gems/activerecord-3.0.0.beta4/lib /Library/Ruby/Gems/1.8/gems/arel-0.4.0/lib /Library/Ruby/Gems/1.8/gems/actionmailer-3.0.0.beta4/lib /Users/wincent/.bundle/gems/mail-2.2.5/lib /Users/wincent/.bundle/gems/treetop-1.4.8/lib /Library/Ruby/Gems/1.8/gems/polyglot-0.3.1/lib /Library/Ruby/Gems/1.8/gems/mime-types-1.16/lib /Library/Ruby/Gems/1.8/gems/actionpack-3.0.0.beta4/lib /Users/wincent/.bundle/gems/tzinfo-0.3.22/lib /Library/Ruby/Gems/1.8/gems/rack-test-0.5.4/lib /Users/wincent/.bundle/gems/rack-mount-0.6.6/lib /Library/Ruby/Gems/1.8/gems/rack-1.1.0/lib /Users/wincent/.bundle/gems/erubis-2.6.6/lib /Library/Ruby/Gems/1.8/gems/activemodel-3.0.0.beta4/lib /Library/Ruby/Gems/1.8/gems/i18n-0.4.1/lib /Library/Ruby/Gems/1.8/gems/builder-2.1.2/lib /Library/Ruby/Gems/1.8/gems/activesupport-3.0.0.beta4/lib /Library/Ruby/Gems/1.8/gems/abstract-1.0.0/lib /Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib /Users/wincent/trabajo/unversioned/wincent.dev/src/spec /Library/Ruby/Gems/1.8/gems/bundler-1.0.0.beta.1/lib /Library/Ruby/Site/1.8 /Library/Ruby/Site/1.8/powerpc-darwin10.0 /Library/Ruby/Site/1.8/universal-darwin10.0 /Library/Ruby/Site /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/vendor_ruby/1.8 /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/vendor_ruby/1.8/universal-darwin10.0 /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/vendor_ruby /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8 /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/powerpc-darwin10.0 /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin10.0 . /Library/Ruby/Gems/1.8/gems/actionpack-3.0.0.beta4/lib/action_controller/vendor/html-scanner /Users/wincent/.bundle/gems/rack-mount-0.6.6/lib/rack/mount/vendor/multimap /Users/wincent/.bundle/gems/rack-mount-0.6.6/lib/rack/mount/vendor/regin
Final LOAD_PATH with Bundler
/Users/wincent/.bundle/gems/haml-3.0.12/vendor/fssm/lib /Users/wincent/trabajo/unversioned/wincent.dev/src/app/controllers /Users/wincent/trabajo/unversioned/wincent.dev/src/app/helpers /Users/wincent/trabajo/unversioned/wincent.dev/src/app/mailers /Users/wincent/trabajo/unversioned/wincent.dev/src/app/models /Users/wincent/trabajo/unversioned/wincent.dev/src/app/sweepers /Users/wincent/trabajo/unversioned/wincent.dev/src/lib /Users/wincent/trabajo/unversioned/wincent.dev/src/vendor /Users/wincent/trabajo/unversioned/wincent.dev/src/vendor/plugins/rails_upgrade/lib /Users/wincent/trabajo/unversioned/wincent.dev/src/spec /Users/wincent/.bundle/gems/wikitext-2.0/lib /Users/wincent/.bundle/gems/wikitext-2.0/ext /Users/wincent/.bundle/bundler/gems/steak-77d6391/lib /Users/wincent/.bundle/gems/rspec-rails-2.0.0.beta.14.1/lib /Library/Ruby/Gems/1.8/gems/webrat-0.7.1/lib /Users/wincent/.bundle/gems/rspec-2.0.0.beta.14/lib /Users/wincent/.bundle/gems/rspec-mocks-2.0.0.beta.14/lib /Users/wincent/.bundle/gems/rspec-expectations-2.0.0.beta.14/lib /Users/wincent/.bundle/gems/rspec-core-2.0.0.beta.14/lib /Library/Ruby/Gems/1.8/gems/rr-0.10.11/lib /Library/Ruby/Gems/1.8/gems/mysql-2.8.1/ext /Library/Ruby/Gems/1.8/gems/mysql-2.8.1/lib /Library/Ruby/Gems/1.8/gems/mkdtemp-1.1.1/lib /Library/Ruby/Gems/1.8/gems/mkdtemp-1.1.1/ext /Users/wincent/.bundle/gems/launchy-0.3.5/lib /Users/wincent/.bundle/gems/jruby-openssl-0.7/lib /Users/wincent/.bundle/gems/hpricot-0.8.2/lib /Users/wincent/.bundle/gems/haml-3.0.12/lib /Users/wincent/.bundle/gems/factory_girl_rails-1.0/lib /Library/Ruby/Gems/1.8/gems/rails-3.0.0.beta4/lib /Library/Ruby/Gems/1.8/gems/railties-3.0.0.beta4/lib /Users/wincent/.bundle/gems/thor-0.13.7/lib /Users/wincent/.bundle/gems/factory_girl-1.3.1/lib /Library/Ruby/Gems/1.8/gems/diff-lcs-1.1.2/lib /Users/wincent/.bundle/gems/database_cleaner-0.5.2/lib /Users/wincent/.bundle/gems/configuration-1.1.0/lib /Users/wincent/.bundle/gems/celerity-0.7.9/lib /Library/Ruby/Gems/1.8/gems/capybara-0.3.8/lib /Library/Ruby/Gems/1.8/gems/selenium-webdriver-0.0.24/remote/client/src/rb/lib /Library/Ruby/Gems/1.8/gems/selenium-webdriver-0.0.24/jobbie/src/rb/lib /Library/Ruby/Gems/1.8/gems/selenium-webdriver-0.0.24/chrome/src/rb/lib /Library/Ruby/Gems/1.8/gems/selenium-webdriver-0.0.24/firefox/src/rb/lib /Library/Ruby/Gems/1.8/gems/selenium-webdriver-0.0.24/common/src/rb/lib /Library/Ruby/Gems/1.8/gems/json_pure-1.4.3/lib /Library/Ruby/Gems/1.8/gems/ffi-0.6.3/ext /Library/Ruby/Gems/1.8/gems/ffi-0.6.3/lib /Library/Ruby/Gems/1.8/gems/nokogiri-1.4.2/lib /Users/wincent/.bundle/gems/culerity-0.2.10/lib /Users/wincent/.bundle/gems/activeresource-3.0.0.beta4/lib /Users/wincent/.bundle/gems/activerecord-3.0.0.beta4/lib /Users/wincent/.bundle/gems/arel-0.4.0/lib /Users/wincent/.bundle/gems/actionmailer-3.0.0.beta4/lib /Users/wincent/.bundle/gems/mail-2.2.5/lib /Users/wincent/.bundle/gems/treetop-1.4.8/lib /Users/wincent/.bundle/gems/polyglot-0.3.1/lib /Users/wincent/.bundle/gems/mime-types-1.16/lib /Users/wincent/.bundle/gems/actionpack-3.0.0.beta4/lib /Users/wincent/.bundle/gems/tzinfo-0.3.22/lib /Users/wincent/.bundle/gems/rack-test-0.5.4/lib /Users/wincent/.bundle/gems/rack-mount-0.6.6/lib /Users/wincent/.bundle/gems/rack-1.1.0/lib /Users/wincent/.bundle/gems/erubis-2.6.6/lib /Users/wincent/.bundle/gems/activemodel-3.0.0.beta4/lib /Users/wincent/.bundle/gems/i18n-0.4.1/lib /Users/wincent/.bundle/gems/builder-2.1.2/lib /Users/wincent/.bundle/gems/activesupport-3.0.0.beta4/lib /Users/wincent/.bundle/gems/abstract-1.0.0/lib /Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib lib spec /Library/Ruby/Gems/1.8/gems/bundler-1.0.0.beta.1/lib /Library/Ruby/Site/1.8 /Library/Ruby/Site/1.8/powerpc-darwin10.0 /Library/Ruby/Site/1.8/universal-darwin10.0 /Library/Ruby/Site /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/vendor_ruby/1.8 /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/vendor_ruby/1.8/universal-darwin10.0 /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/vendor_ruby /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8 /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/powerpc-darwin10.0 /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin10.0 . /Users/wincent/.bundle/gems/actionpack-3.0.0.beta4/lib/action_controller/vendor/html-scanner /Users/wincent/.bundle/gems/rack-mount-0.6.6/lib/rack/mount/vendor/multimap /Users/wincent/.bundle/gems/rack-mount-0.6.6/lib/rack/mount/vendor/regin
-
Greg Hurrell
As far as I can see, the only differences between the two are:
-
the Bundler one adds
spec
(relative path) to the LOAD_PATH (both also add the absolute path to the directory, although at different points) -
the Bundler one adds paths inside
~/.bundle
, but the version numbers are all identical
-
the Bundler one adds
-
Greg Hurrell
Given the scant difference between what's actually in the load path, I wonder if the difference lies in what is in the load path at the time that some of the earlier parts of the
spec_helper
file are evaluated.I also wonder about the Mongrel thing. It works without Bundler, but with Bundler it's not found. I've tried various tricks trying to get it to be visible from the Bundle environment, but really at a loss to know how/why things are different. One thing I do see in the Culerity source is that JRuby becomes involved only here, in the file
bin/run_celerity_server.rb
:#!/usr/bin/env jruby require File.dirname(__FILE__) << '/../lib/culerity/celerity_server' Culerity::CelerityServer.new(STDIN, STDOUT)
So I guess at that point, we're running under JRuby, and in the "no Bundler" version Mongrel is available because the first thing that
lib/culerity/celerity_server
does isrequire 'rubygems'
, and the environment at that point somehow has an appropriate load path. -
Greg Hurrell
Just checked out what the load path is inside
celerity_server
and see the same differences as listed above. In both cases we have something this:/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/gems/mongrel-1.1.5/ext /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/gems/mongrel-1.1.5/lib
Even if I change the Gemfile to:
gem 'mongrel', :require => nil, :path => '/usr/local/jruby-1.5.1/lib/ruby/gems/1.8/gems/mongrel-1.1.5-java'
I still see the paths to the native C Mongrel in the load path.
gem 'mongrel-java'
obviously won't work, as no such gem exists.More tweaking, and now
rake spec:acceptance
is mysteriously working again...Looks like the
gem 'jruby-openssl'
line might have had something to do with it... add it in and things start hanging again... remove it and still broken... Maybe it was just a coincidence.Here is the output of
bundle show
when it was working:Gems included by the bundle: * abstract (1.0.0) * actionmailer (3.0.0.beta4) * actionpack (3.0.0.beta4) * activemodel (3.0.0.beta4) * activerecord (3.0.0.beta4) * activeresource (3.0.0.beta4) * activesupport (3.0.0.beta4) * arel (0.4.0) * builder (2.1.2) * bundler (1.0.0.beta.1) * capybara (0.3.8) * celerity (0.7.9) * cgi_multipart_eof_fix (2.5.0) * configuration (1.1.0) * culerity (0.2.10) * daemons (1.1.0) * database_cleaner (0.5.2) * diff-lcs (1.1.2) * erubis (2.6.6) * factory_girl (1.3.1) * factory_girl_rails (1.0) * fastthread (1.0.7) * ffi (0.6.3) * gem_plugin (0.2.3) * haml (3.0.12) * hpricot (0.8.2) * i18n (0.4.1) * json_pure (1.4.3) * launchy (0.3.5) * mail (2.2.5) * mime-types (1.16) * mkdtemp (1.1.1) * mongrel (1.1.5) * mysql (2.8.1) * nokogiri (1.4.2) * polyglot (0.3.1) * rack (1.1.0) * rack-mount (0.6.6) * rack-test (0.5.4) * rails (3.0.0.beta4) * railties (3.0.0.beta4) * rake (0.8.7) * rr (0.10.11) * rspec (2.0.0.beta.14) * rspec-core (2.0.0.beta.14) * rspec-expectations (2.0.0.beta.14) * rspec-mocks (2.0.0.beta.14) * rspec-rails (2.0.0.beta.14.1) * selenium-webdriver (0.0.24) * steak (0.4.0.beta.1 77d6391) * thor (0.13.7) * treetop (1.4.8) * tzinfo (0.3.22) * webrat (0.7.1) * wikitext (2.0)
Output of
bundle show mongrel
when working:/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/gems/mongrel-1.1.5
And here is output of
bundle install
, which broke things:Updating git://github.com/cavalle/steak.git Using rake (0.8.7) Using abstract (1.0.0) Using activesupport (3.0.0.beta4) Using builder (2.1.2) Using i18n (0.4.1) Using activemodel (3.0.0.beta4) Using erubis (2.6.6) Using rack (1.1.0) Using rack-mount (0.6.6) Using rack-test (0.5.4) Using tzinfo (0.3.22) Using actionpack (3.0.0.beta4) Using mime-types (1.16) Using polyglot (0.3.1) Using treetop (1.4.8) Using mail (2.2.5) Using actionmailer (3.0.0.beta4) Using arel (0.4.0) Using activerecord (3.0.0.beta4) Using activeresource (3.0.0.beta4) Using bundler (1.0.0.beta.1) Using culerity (0.2.10) Using nokogiri (1.4.2) Using ffi (0.6.3) Using json_pure (1.4.3) Using selenium-webdriver (0.0.24) Using capybara (0.3.8) Using celerity (0.7.9) Using cgi_multipart_eof_fix (2.5.0) Using configuration (1.1.0) Using daemons (1.1.0) Using database_cleaner (0.5.2) Using diff-lcs (1.1.2) Using factory_girl (1.3.1) Using thor (0.13.7) Using railties (3.0.0.beta4) Using rails (3.0.0.beta4) Using factory_girl_rails (1.0) Using fastthread (1.0.7) Using gem_plugin (0.2.3) Using haml (3.0.12) Using hpricot (0.8.2) Using launchy (0.3.5) Using mkdtemp (1.1.1) Using mongrel (1.1.5) Using mysql (2.8.1) Using rr (0.10.11) Using rspec-core (2.0.0.beta.14) Using rspec-expectations (2.0.0.beta.14) Using rspec-mocks (2.0.0.beta.14) Using rspec (2.0.0.beta.14) Using webrat (0.7.1) Using rspec-rails (2.0.0.beta.14.1) Using steak (0.4.0.beta.1) from git://github.com/cavalle/steak.git (at master) Using wikitext (2.0) Updating .gem files in vendor/cache Removing outdated .gem files from vendor/cache * jruby-openssl-0.7.gem Your bundle is complete! Use `bundle show [gemname]` to see where a bundled gem is installed.
And now output of
bundle show
:Gems included by the bundle: * abstract (1.0.0) * actionmailer (3.0.0.beta4) * actionpack (3.0.0.beta4) * activemodel (3.0.0.beta4) * activerecord (3.0.0.beta4) * activeresource (3.0.0.beta4) * activesupport (3.0.0.beta4) * arel (0.4.0) * builder (2.1.2) * bundler (1.0.0.beta.1) * capybara (0.3.8) * celerity (0.7.9) * cgi_multipart_eof_fix (2.5.0) * configuration (1.1.0) * culerity (0.2.10) * daemons (1.1.0) * database_cleaner (0.5.2) * diff-lcs (1.1.2) * erubis (2.6.6) * factory_girl (1.3.1) * factory_girl_rails (1.0) * fastthread (1.0.7) * ffi (0.6.3) * gem_plugin (0.2.3) * haml (3.0.12) * hpricot (0.8.2) * i18n (0.4.1) * json_pure (1.4.3) * launchy (0.3.5) * mail (2.2.5) * mime-types (1.16) * mkdtemp (1.1.1) * mongrel (1.1.5) * mysql (2.8.1) * nokogiri (1.4.2) * polyglot (0.3.1) * rack (1.1.0) * rack-mount (0.6.6) * rack-test (0.5.4) * rails (3.0.0.beta4) * railties (3.0.0.beta4) * rake (0.8.7) * rr (0.10.11) * rspec (2.0.0.beta.14) * rspec-core (2.0.0.beta.14) * rspec-expectations (2.0.0.beta.14) * rspec-mocks (2.0.0.beta.14) * rspec-rails (2.0.0.beta.14.1) * selenium-webdriver (0.0.24) * steak (0.4.0.beta.1 77d6391) * thor (0.13.7) * treetop (1.4.8) * tzinfo (0.3.22) * webrat (0.7.1) * wikitext (2.0)
-
Greg Hurrell
Something I hadn't noticed before among all the hanging specs, broken pipes, and failures, is this:
1) Logging in to the site: logging in and seeing a flash Failure/Error: visit '/login' (eval):1:in `process_result': compile error (eval):1: Invalid char `\033' in expression (eval):1: syntax error, unexpected tIDENTIFIER, expecting ']' Could not find gem 'weakling (>= 0....
Note that last line, Could not find gem 'weakling ....
So, under
rspec ...
, it must be finding it from somewhere, or an alternative. It is not installed anywhere on my system.No mention of weakling in either the Culerity or Celerity repos.
Adding seems to fix the hanging. More digging, looks to be a dependency of Nokogiri (Java flavor).
-
Greg Hurrell
Sigh, but it's still all over the place. Hangs once, succeeds once.
-
Greg Hurrell
Ok, think I'm getting to the bottom of it at last.
Both
bundle exec ...
andrake ...
end up exportingRUBYOPT
; specifically:-I/Library/Ruby/Gems/1.8/gems/bundler-1.0.0.beta.1/lib -rbundler/setup
What does
bundler/setup
do? Basically, consult theGemfile
and doBundler.setup
.We can throw the baby out with the bathwater by ensuring that
RUBYOPT
is unset before we actually run our Culerity-using specs, and they work every time. But this is evidently a horrible kludge. We should be able to make it so that the specs work even withRUBYOPT
set that way.As a test, I tried to run this simple command line:
$ jruby -I/Library/Ruby/Gems/1.8/gems/bundler-1.0.0.beta.1/lib -rbundler/setup -e "puts 1 + 1" Could not find rake-0.8.7 in any of the sources
It is evidently looking for one of the dependencies of Rails. Perhaps, then, this is what is happening when our specs fail (or perhaps not; it is still unclear why they only fail intermittently).
If we skip the evaluation of
bundler/setup
we succeed:$ jruby -I/Library/Ruby/Gems/1.8/gems/bundler-1.0.0.beta.1/lib -e "puts 1 + 1" 2
But this test isn't really fair because in reality there are other things in the load path when we actually try to run the specs.
So let's do a somewhat lengthier test. Let's take the actual contents of the load path and pass them in as arguments:
$ jruby -I/Library/Ruby/Gems/1.8/gems/bundler-1.0.0.beta.1/lib \ -I/Users/wincent/.bundle/gems/haml-3.0.12/vendor/fssm/lib \ -I/Users/wincent/trabajo/unversioned/wincent.dev/src/app/controllers \ -I/Users/wincent/trabajo/unversioned/wincent.dev/src/app/helpers \ -I/Users/wincent/trabajo/unversioned/wincent.dev/src/app/mailers \ -I/Users/wincent/trabajo/unversioned/wincent.dev/src/app/models \ -I/Users/wincent/trabajo/unversioned/wincent.dev/src/app/sweepers \ -I/Users/wincent/trabajo/unversioned/wincent.dev/src/lib \ -I/Users/wincent/trabajo/unversioned/wincent.dev/src/vendor \ -I/Users/wincent/trabajo/unversioned/wincent.dev/src/vendor/plugins/rails_upgrade/lib \ -I/Users/wincent/trabajo/unversioned/wincent.dev/src/spec \ -I/Users/wincent/.bundle/gems/wikitext-2.0/lib \ -I/Users/wincent/.bundle/gems/wikitext-2.0/ext \ -I/Users/wincent/.bundle/bundler/gems/steak-77d6391/lib \ -I/Users/wincent/.bundle/gems/rspec-rails-2.0.0.beta.14.1/lib \ -I/Library/Ruby/Gems/1.8/gems/webrat-0.7.1/lib \ -I/Users/wincent/.bundle/gems/rspec-2.0.0.beta.14/lib \ -I/Users/wincent/.bundle/gems/rspec-mocks-2.0.0.beta.14/lib \ -I/Users/wincent/.bundle/gems/rspec-expectations-2.0.0.beta.14/lib \ -I/Users/wincent/.bundle/gems/rspec-core-2.0.0.beta.14/lib \ -I/Library/Ruby/Gems/1.8/gems/rr-0.10.11/lib \ -I/Library/Ruby/Gems/1.8/gems/mysql-2.8.1/ext \ -I/Library/Ruby/Gems/1.8/gems/mysql-2.8.1/lib \ -I/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/gems/mongrel-1.1.5/ext \ -I/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/gems/mongrel-1.1.5/lib \ -I/Library/Ruby/Gems/1.8/gems/mkdtemp-1.1.1/lib \ -I/Library/Ruby/Gems/1.8/gems/mkdtemp-1.1.1/ext \ -I/Users/wincent/.bundle/gems/launchy-0.3.5/lib \ -I/Users/wincent/.bundle/gems/jruby-openssl-0.7/lib \ -I/Users/wincent/.bundle/gems/hpricot-0.8.2/lib \ -I/Users/wincent/.bundle/gems/haml-3.0.12/lib \ -I/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/gems/gem_plugin-0.2.3/lib \ -I/Users/wincent/.bundle/gems/fastthread-1.0.7/ext \ -I/Users/wincent/.bundle/gems/fastthread-1.0.7/lib \ -I/Users/wincent/.bundle/gems/factory_girl_rails-1.0/lib \ -I/Library/Ruby/Gems/1.8/gems/rails-3.0.0.beta4/lib \ -I/Library/Ruby/Gems/1.8/gems/railties-3.0.0.beta4/lib \ -I/Users/wincent/.bundle/gems/thor-0.13.7/lib \ -I/Users/wincent/.bundle/gems/factory_girl-1.3.1/lib \ -I/Library/Ruby/Gems/1.8/gems/diff-lcs-1.1.2/lib \ -I/Users/wincent/.bundle/gems/database_cleaner-0.5.2/lib \ -I/Users/wincent/.bundle/gems/daemons-1.1.0/lib \ -I/Users/wincent/.bundle/gems/configuration-1.1.0/lib \ -I/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/gems/cgi_multipart_eof_fix-2.5.0/lib \ -I/Users/wincent/.bundle/gems/celerity-0.7.9/lib \ -I/Library/Ruby/Gems/1.8/gems/capybara-0.3.8/lib \ -I/Library/Ruby/Gems/1.8/gems/selenium-webdriver-0.0.24/remote/client/src/rb/lib \ -I/Library/Ruby/Gems/1.8/gems/selenium-webdriver-0.0.24/jobbie/src/rb/lib \ -I/Library/Ruby/Gems/1.8/gems/selenium-webdriver-0.0.24/chrome/src/rb/lib \ -I/Library/Ruby/Gems/1.8/gems/selenium-webdriver-0.0.24/firefox/src/rb/lib \ -I/Library/Ruby/Gems/1.8/gems/selenium-webdriver-0.0.24/common/src/rb/lib \ -I/Library/Ruby/Gems/1.8/gems/json_pure-1.4.3/lib \ -I/Library/Ruby/Gems/1.8/gems/ffi-0.6.3/ext \ -I/Library/Ruby/Gems/1.8/gems/ffi-0.6.3/lib \ -I/Library/Ruby/Gems/1.8/gems/nokogiri-1.4.2/lib \ -I/Library/Ruby/Gems/1.8/gems/culerity-0.2.10/lib \ -I/Library/Ruby/Gems/1.8/gems/activeresource-3.0.0.beta4/lib \ -I/Library/Ruby/Gems/1.8/gems/activerecord-3.0.0.beta4/lib \ -I/Library/Ruby/Gems/1.8/gems/arel-0.4.0/lib \ -I/Library/Ruby/Gems/1.8/gems/actionmailer-3.0.0.beta4/lib \ -I/Users/wincent/.bundle/gems/mail-2.2.5/lib \ -I/Users/wincent/.bundle/gems/treetop-1.4.8/lib \ -I/Library/Ruby/Gems/1.8/gems/polyglot-0.3.1/lib \ -I/Library/Ruby/Gems/1.8/gems/mime-types-1.16/lib \ -I/Library/Ruby/Gems/1.8/gems/actionpack-3.0.0.beta4/lib \ -I/Users/wincent/.bundle/gems/tzinfo-0.3.22/lib \ -I/Library/Ruby/Gems/1.8/gems/rack-test-0.5.4/lib \ -I/Users/wincent/.bundle/gems/rack-mount-0.6.6/lib \ -I/Library/Ruby/Gems/1.8/gems/rack-1.1.0/lib \ -I/Users/wincent/.bundle/gems/erubis-2.6.6/lib \ -I/Library/Ruby/Gems/1.8/gems/activemodel-3.0.0.beta4/lib \ -I/Library/Ruby/Gems/1.8/gems/i18n-0.4.1/lib \ -I/Library/Ruby/Gems/1.8/gems/builder-2.1.2/lib \ -I/Library/Ruby/Gems/1.8/gems/activesupport-3.0.0.beta4/lib \ -I/Library/Ruby/Gems/1.8/gems/abstract-1.0.0/lib \ -I/Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib \ -Ilib \ -Ispec \ -I/Library/Ruby/Gems/1.8/gems/bundler-1.0.0.beta.1/lib \ -I/Library/Ruby/Site/1.8 \ -I/Library/Ruby/Site/1.8/powerpc-darwin10.0 \ -I/Library/Ruby/Site/1.8/universal-darwin10.0 \ -I/Library/Ruby/Site \ -I/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/vendor_ruby/1.8 \ -I/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/vendor_ruby/1.8/universal-darwin10.0 \ -I/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/vendor_ruby \ -I/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8 \ -I/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/powerpc-darwin10.0 \ -I/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin10.0 \ -I. \ -I/Library/Ruby/Gems/1.8/gems/actionpack-3.0.0.beta4/lib/action_controller/vendor/html-scanner \ -I/Users/wincent/.bundle/gems/rack-mount-0.6.6/lib/rack/mount/vendor/multimap \ -I/Users/wincent/.bundle/gems/rack-mount-0.6.6/lib/rack/mount/vendor/regin \ -rbundler/setup -e "puts 1 + 1" Could not find rake-0.8.7 in any of the sources
Evidently merely being in the load path is not enough (because rake is in the load path).
-
Greg Hurrell
The one thing I am still not sure of is where
RUBYOPT
is getting set in the case of runningrake spec:acceptance
(it's obvious in the case ofbundle exec
).It's not set in any of the
lib/tasks/*.rake
files. It's not set by the bottom of theRakefile
. It's not set inconfig/application.rb
. It is set by the time we hit the top ofspec_helper.rb
.Ok, looks like I found it:
rspec-core/lib/rspec/core/rake_task.rb
Need to analyse that file a bit to find out what it's doing, but if I turn on verbose output I can see it's doing:
bundle exec /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby \ -Ilib \ -Ispec \ "spec/acceptance/issues/search_spec.rb" \ "spec/acceptance/products/index_spec.rb" \ "spec/acceptance/regressions/76968b7_spec.rb" \ "spec/acceptance/sessions_spec.rb"
-
Greg Hurrell
Have a workaround now. Filed a ticket upstream explaining my findings and trying to see if this is going to be the right/best solution going forward:
-
Greg Hurrell
Fully resolved now. Marking as closed.
-
Greg Hurrell
Status changed:
- From: new
- To: closed
Add a comment
Comments are now closed for this issue.