error with OPTION in Rails:Edge

Hi,

With the announce of release to Rails 2.0 PR. I want test it on my own
web-application. So to test it, I have made as say in DHH announce[1]:

rake rails:freeze:edge TAG=rel_2-0-0_PR

But after a rake rails:update and a script/server start, I have an
error. I paste the error in pastie[2].

In my system, I have the gem of 1.2.3 Rails.

For another test I have install the gem of 2.0 PR ( gem install rails
--source http://gems.rubyonrails.org ). So after this install I have
not problem. My application run correctly.

But If I uninstall this new gem to leave the old. The error become
again. I don't know what I have this error. I have test on another PC
and no problem.

Have you an idea ?

[1] : http://weblog.rubyonrails.org/2007/9/30/rails-2-0-0-preview-release
[2] : http://pastie.caboo.se/102615

I've hit this a couple times, but I don't remember the _exact_ cause and fix.

I _believe_ that what's happening is that mongrel is being double
loaded due to a bad require (check your environment.rb). The second
time it's loaded, the OPTIONS array hasn't been modified to be an
OptionParser (which makes it a singleton), so it bails on that run.

"warning: already initialized constant OPTIONS" is an indicator.
Double check your requires in environment.rb, and you may want to just
put some printf debugging in
rails/railties/lib/commands/servers/mongrel.rb. Just have it raise,
and catch, and print the backtrace. It'll let you know where it's
being loaded twice.

And do report back. I don't remember the exact cause, but it'd be nice
to have it sitting on a mailing list somewhere to refer back to.

I just hit this the same error a couple days ago against plain 1.2.3,
and I can confirm that I had a bad require in my environments.rb.

- Rob

rails:freeze:edge downloads only %w(actionpack activerecord actionmailer activesupport actionwebservice), but Rails 2.0 Initializer wants to load [:active_record, :
action_controller, :action_view, :
action_mailer, :active_resource]. Yeah, ActiveResource breaks your apps.

Solution?

  1. config.frameworks -= [ :active_resource ]
  2. do an svn checkout and symlink to it from vendor/rails (recommended, you can switch easily between trunk and PR)

Thanks, It's really this issue and now it's fixed.

You may want to also take a look at this bug report that I filed. I
had the same problem and running the 'rake rails:freeze:edge
TAG=rel_2-0-0_PR' TWO times resolved the issue for me when upgrading a
1.2.3 app. Explanation in the bug report.

http://dev.rubyonrails.org/ticket/9743

Glenn

I created a patch about 3 months ago to fix the rake task. Check out
http://dev.rubyonrails.org/ticket/8717. Mislav's patch looks more
comprehensive though.