markbates / cover_me

An RCov-esque coverage tool for Ruby 1.9
http://www.metabates.com
MIT License
203 stars 18 forks source link

cover_me breaks passenger standalone #31

Open jwhitmire opened 13 years ago

jwhitmire commented 13 years ago

I'm not really sure what's going on here, but I can run my app just fine with webrick. However, when I try to run it using passenger standalone (my preferred server), I get the following stacktrace which appears to be a conflict between passenger and configatron. I'm happy to assist with any further debugging of this issue if you can point me in the right direction. Here's the stacktrace:

[ pid=38526 thr=2151955260 file=utils.rb:176 time=2011-02-21 17:26:27.396 ]: *\ Exception PhusionPassenger::UnknownError in PhusionPassenger::Rack::ApplicationSpawner (at_exit (Configatron::ProtectedParameter)) (process 38526, thread #Thread:0x00000100887678): from /Users/jeff/.rvm/gems/ruby-1.9.2-p136@homeschool/gems/configatron-2.6.4/lib/configatron/store.rb:136:in method_missing' from /Users/jeff/.rvm/gems/ruby-1.9.2-p136@homeschool/gems/configatron-2.6.4/lib/configatron/store.rb:129:inset_default' from /Users/jeff/.rvm/gems/ruby-1.9.2-p136@homeschool/gems/cover_me-1.0.0.rc5/lib/cover_me/config.rb:33:in block in set_defaults' from /Users/jeff/.rvm/gems/ruby-1.9.2-p136@homeschool/gems/cover_me-1.0.0.rc5/lib/cover_me/config.rb:16:inconfig' from /Users/jeff/.rvm/gems/ruby-1.9.2-p136@homeschool/gems/cover_me-1.0.0.rc5/lib/cover_me/config.rb:21:in set_defaults' from /Users/jeff/.rvm/gems/ruby-1.9.2-p136@homeschool/gems/cover_me-1.0.0.rc5/lib/cover_me.rb:34:in<top (required)>' from /Users/jeff/.rvm/gems/ruby-1.9.2-p136@homeschool/gems/bundler-1.0.10/lib/bundler/runtime.rb:68:in require' from /Users/jeff/.rvm/gems/ruby-1.9.2-p136@homeschool/gems/bundler-1.0.10/lib/bundler/runtime.rb:68:inblock (2 levels) in require' from /Users/jeff/.rvm/gems/ruby-1.9.2-p136@homeschool/gems/bundler-1.0.10/lib/bundler/runtime.rb:66:in each' from /Users/jeff/.rvm/gems/ruby-1.9.2-p136@homeschool/gems/bundler-1.0.10/lib/bundler/runtime.rb:66:inblock in require' from /Users/jeff/.rvm/gems/ruby-1.9.2-p136@homeschool/gems/bundler-1.0.10/lib/bundler/runtime.rb:55:in each' from /Users/jeff/.rvm/gems/ruby-1.9.2-p136@homeschool/gems/bundler-1.0.10/lib/bundler/runtime.rb:55:inrequire' from /Users/jeff/.rvm/gems/ruby-1.9.2-p136@homeschool/gems/bundler-1.0.10/lib/bundler.rb:120:in require' from /Users/jeff/homeschool/homeschool/config/application.rb:7:in<top (required)>' from /Users/jeff/homeschool/homeschool/config/environment.rb:2:in require' from /Users/jeff/homeschool/homeschool/config/environment.rb:2:in<top (required)>' from config.ru:3:in require' from config.ru:3:inblock in

' from /Users/jeff/.rvm/gems/ruby-1.9.2-p136@homeschool/gems/rack-1.2.1/lib/rack/builder.rb:46:in instance_eval' from /Users/jeff/.rvm/gems/ruby-1.9.2-p136@homeschool/gems/rack-1.2.1/lib/rack/builder.rb:46:ininitialize from config.ru:1:in new' from config.ru:1:in
' from /Users/jeff/.passenger/standalone/3.0.2-x86_64-ruby1.9.2-macosx-10.6/support/lib/phusion_passenger/rack/application_spawner.rb:221:in eval' from /Users/jeff/.passenger/standalone/3.0.2-x86_64-ruby1.9.2-macosx-10.6/support/lib/phusion_passenger/rack/application_spawner.rb:221:inload_rack_app' from /Users/jeff/.passenger/standalone/3.0.2-x86_64-ruby1.9.2-macosx-10.6/support/lib/phusion_passenger/rack/application_spawner.rb:156:in block in initialize_server' from /Users/jeff/.passenger/standalone/3.0.2-x86_64-ruby1.9.2-macosx-10.6/support/lib/phusion_passenger/utils.rb:564:inreport_app_init_status' from /Users/jeff/.passenger/standalone/3.0.2-x86_64-ruby1.9.2-macosx-10.6/support/lib/phusion_passenger/rack/application_spawner.rb:153:in initialize_server' from /Users/jeff/.passenger/standalone/3.0.2-x86_64-ruby1.9.2-macosx-10.6/support/lib/phusion_passenger/abstract_server.rb:204:instart_synchronously' from /Users/jeff/.passenger/standalone/3.0.2-x86_64-ruby1.9.2-macosx-10.6/support/lib/phusion_passenger/abstract_server.rb:180:in start' from /Users/jeff/.passenger/standalone/3.0.2-x86_64-ruby1.9.2-macosx-10.6/support/lib/phusion_passenger/rack/application_spawner.rb:128:instart' from /Users/jeff/.passenger/standalone/3.0.2-x86_64-ruby1.9.2-macosx-10.6/support/lib/phusion_passenger/spawn_manager.rb:253:in block (2 levels) in spawn_rack_application' from /Users/jeff/.passenger/standalone/3.0.2-x86_64-ruby1.9.2-macosx-10.6/support/lib/phusion_passenger/abstract_server_collection.rb:132:inlookup_or_add' from /Users/jeff/.passenger/standalone/3.0.2-x86_64-ruby1.9.2-macosx-10.6/support/lib/phusion_passenger/spawn_manager.rb:246:in block in spawn_rack_application' from /Users/jeff/.passenger/standalone/3.0.2-x86_64-ruby1.9.2-macosx-10.6/support/lib/phusion_passenger/abstract_server_collection.rb:82:inblock in synchronize' from internal:prelude:10:in synchronize' from /Users/jeff/.passenger/standalone/3.0.2-x86_64-ruby1.9.2-macosx-10.6/support/lib/phusion_passenger/abstract_server_collection.rb:79:insynchronize' from /Users/jeff/.passenger/standalone/3.0.2-x86_64-ruby1.9.2-macosx-10.6/support/lib/phusion_passenger/spawn_manager.rb:244:in spawn_rack_application' from /Users/jeff/.passenger/standalone/3.0.2-x86_64-ruby1.9.2-macosx-10.6/support/lib/phusion_passenger/spawn_manager.rb:137:inspawn_application' from /Users/jeff/.passenger/standalone/3.0.2-x86_64-ruby1.9.2-macosx-10.6/support/lib/phusion_passenger/spawn_manager.rb:275:in handle_spawn_application' from /Users/jeff/.passenger/standalone/3.0.2-x86_64-ruby1.9.2-macosx-10.6/support/lib/phusion_passenger/abstract_server.rb:357:inserver_main_loop' from /Users/jeff/.passenger/standalone/3.0.2-x86_64-ruby1.9.2-macosx-10.6/support/lib/phusion_passenger/abstract_server.rb:206:in start_synchronously' from /Users/jeff/.passenger/standalone/3.0.2-x86_64-ruby1.9.2-macosx-10.6/support/helper-scripts/passenger-spawn-server:99:in
'

elomar commented 13 years ago

Any update on this? I'm getting the same error with passenger 3.0.7

pjg commented 13 years ago

cover_me (1.2.0) gives me this error when starting an app with passenger 3.0.9:

Error message: at_exit (Configatron::ProtectedParameter)

0 /home/jkl/.rvm/gems/ruby-1.9.2-p180/gems/configatron-2.8.2/lib/configatron/store.rb 147 in method_missing' 1 /home/jkl/.rvm/gems/ruby-1.9.2-p180/gems/configatron-2.8.2/lib/configatron/store.rb 140 inset_default' 2 /home/jkl/.rvm/gems/ruby-1.9.2-p180/gems/cover_me-1.2.0/lib/cover_me/config.rb 39 in block in set_defaults' 3 /home/jkl/.rvm/gems/ruby-1.9.2-p180/gems/cover_me-1.2.0/lib/cover_me/config.rb 16 inconfig' 4 /home/jkl/.rvm/gems/ruby-1.9.2-p180/gems/cover_me-1.2.0/lib/cover_me/config.rb 21 in set_defaults' 5 /home/jkl/.rvm/gems/ruby-1.9.2-p180/gems/cover_me-1.2.0/lib/cover_me.rb 34 in' ....

belt commented 11 years ago

A two year old issue with no input from the author. This isn't a good sign... especially considering Mr. Bates wrote both configatron and cover_me... and the wide-spread deployment of passenger.

There is a monkey patch, also 2 years old, mentioned in an unrelated gem... but same issue: https://github.com/sporkrb/spork/issues/67

sobakasu commented 11 years ago

monkey patch fixed it for me, but I had to put it at the top of config/application.rb. adding to an initializer didn't work (error occurs before initializers are run).

require 'configatron' require File.join(FILE, '../../lib/monkeypatches/configatron_store')