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.
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.
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.
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.