script/server vs mongrel_rails start issue

I am having different results between when I start mongrel with script/ server and with mongrel_rails start.

When I run script/server to boot mongrel everything runs fine, no errors.

When I run mongrel_rails start I get the following errors - verified the problem on a fresh app and on two different environments (mac and yes, windows server 2008). The actual line of fault changes but the problem is always originating in /usr/local/bin/mongrel_rails:19

I would very much appreciate any ideas.

David

C:\webapps\creditcompare>mongrel_rails start -e production ** Starting Mongrel listening at 0.0.0.0:3000 ** Starting Rails with production environment... ** Rails loaded. ** Loading any Rails specific GemPlugins C:/Ruby187/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:89:in `read': can't convert Hash into Integer (TypeError)         from C:/Ruby187/lib/ruby/site_ruby/1.8/rubygems/ source_index.rb:89:in `load_specification'         from C:/Ruby187/lib/ruby/site_ruby/1.8/rubygems/ source_index.rb:153:in `load_gems_in'         from C:/Ruby187/lib/ruby/site_ruby/1.8/rubygems/ source_index.rb:152:in `each'         from C:/Ruby187/lib/ruby/site_ruby/1.8/rubygems/ source_index.rb:152:in `load_gems_in'         from C:/Ruby187/lib/ruby/site_ruby/1.8/rubygems/ source_index.rb:149:in `reverse_each'         from C:/Ruby187/lib/ruby/site_ruby/1.8/rubygems/ source_index.rb:149:in `load_gems_in'         from C:/Ruby187/lib/ruby/site_ruby/1.8/rubygems/ source_index.rb:345:in `refresh!'         from C:/Ruby187/lib/ruby/site_ruby/1.8/rubygems/ source_index.rb:78:in `from_gems_in'         from C:/Ruby187/lib/ruby/site_ruby/1.8/rubygems/ source_index.rb:60:in `from_installed_gems'         from C:/Ruby187/lib/ruby/gems/1.8/gems/gem_plugin-0.2.3/lib/ gem_plugin.rb:109:in `load'         from C:/Ruby187/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86- mingw32/bin/../lib/mongrel/configurator.rb:231:in `load _plugins'         from C:/Ruby187/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86- mingw32/bin/mongrel_rails:117:in `cloaker_'         from C:/Ruby187/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86- mingw32/bin/../lib/mongrel/configurator.rb:149:in `call '         from C:/Ruby187/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86- mingw32/bin/../lib/mongrel/configurator.rb:149:in `list ener'         from C:/Ruby187/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86- mingw32/bin/mongrel_rails:99:in `cloaker_'         from C:/Ruby187/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86- mingw32/bin/../lib/mongrel/configurator.rb:50:in `call'

        from C:/Ruby187/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86- mingw32/bin/../lib/mongrel/configurator.rb:50:in `initi alize'         from C:/Ruby187/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86- mingw32/bin/mongrel_rails:84:in `new'         from C:/Ruby187/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86- mingw32/bin/mongrel_rails:84:in `run'         from C:/Ruby187/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86- mingw32/bin/../lib/mongrel/command.rb:212:in `run'         from C:/Ruby187/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86- mingw32/bin/mongrel_rails:281         from C:/Ruby187/bin/mongrel_rails:19:in `load'         from C:/Ruby187/bin/mongrel_rails:19

C:\webapps\creditcompare>

Sun Jun 13 13:12:32 -0700 2010: Error calling Dispatcher.dispatch #<NoMethodError: You have a nil object when you didn't expect it! You might have expected an instance of ActiveRecord::Base. The error occurred while evaluating nil.> /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel/ cgi.rb:108:in `send_cookies' /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel/ cgi.rb:136:in `out' /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel/ http_response.rb:65:in `start' /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel/ cgi.rb:135:in `out' /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel/ rails.rb:81:in `process' /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel.rb: 159:in `process_client' /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel.rb: 158:in `each' /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel.rb: 158:in `process_client' /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel.rb: 285:in `run' /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel.rb: 285:in `initialize' /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel.rb: 285:in `new' /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel.rb: 285:in `run' /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel.rb: 268:in `initialize' /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel.rb: 268:in `new' /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel.rb: 268:in `run' /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel/ configurator.rb:282:in `run' /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel/ configurator.rb:281:in `each' /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel/ configurator.rb:281:in `run' /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/mongrel_rails: 128:in `run' /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel/ command.rb:212:in `run' /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/mongrel_rails:281 /usr/local/bin/mongrel_rails:19:in `load' /usr/local/bin/mongrel_rails:19

We ran into the same issue. You can follow the issue here.

https://rails.lighthouseapp.com/projects/8994/tickets/4690-mongrel-doesnt-work-with-rails-238

The fixes in the these posts did the trick for us:      Edgars Beigarts May 26th, 2010 @ 07:03 PM      bshand June 10th, 2010 @ 12:08 PM

Hope this helps!

-James

Thanks James - wondering if you also found that config.cache_classes = true caused problems? I found that the patch + changing this setting to false fixed things. config.cache_classes worked badly on 2.3.4 though also, so is a bit strange. As for the patch, I was finding that there was a nil value getting into the part of code where the patch is and that the .split was failing as it was coming in as nil.split. Strange. Was there a reason you stayed with 2.3.8 rather than just staying on an older version of rails?

Honestly we didn't really have a reason to upgrade to 2.3.8 besides trying to stay at the latest release. Since I figured out a way to get it to run I decided to keep going with 2.3.8. As for the cache_classes, I didn't experience any behavior like that.

-James

Hi,

First of all, I'm sorry for my English.

Looks like I found the reason of this problem: I use REE 1.8.7, gem v=1.3.7 problem in ... /lib/ruby/site_ruby/1.8/rubygems/source_index.rb:89:in `read': can't convert Hash into Integer (TypeError)

because code

   if defined? Encoding then File.read file_name, :encoding => 'UTF-8'

will work only with ruby 1.9 you can find difference here Class: IO (Ruby 1.8.7) http://ruby-doc.org/ruby-1.9/classes/IO.html#M000125

I found that '(defined? Encoding) == true' because REXML::Encoding loaded

I found in my code this 'include REXML' removing this line helped to me fix this issue. Try to find in your code inclusion Namspace with Encoding constant