I know this thread is two months old, but it is the only reference in
the official Heroku channels I have found referring to the dsl
conflict with the 1.9.2 stack and rake 0.9.x (I resorted to SO to find
a few more thorough explanations and possible solutions). If
documentation exists it would be great to know where for reference.

The conflict came about while fixing an issue with a crashed email
notification job. Turns out moving my stack from bamboo-ree(1.8.7) to
bamboo-mri(1.9.2) caused cron to throw 'uninitialized constant
Rake::DSL'.

Unfortunately this wasn't caught until we noticed nightly jobs had
stopped running.

Unfortunate as one of the jobs is a forum notification mass-mailer
that had a queue backed up for several days. ~2850 errant emails after
fixing the rake issue (5 minutes), our solution was to alter our Rake
file in the exact order below, adding "require 'rake/dsl_definition'"
_before_ "require 'rake'":

  require File.expand_path('../config/application', __FILE__)

  require 'rake/dsl_definition'
  require 'rake'

Beyond changes to the stack, I'd second updating  documentation for
cron, dj, workers, and proc/rake to include this potential conflict,
and methods to prevent the issue.

-Alex

On Thu, Jul 21, 2011 at 9:59 AM, Terence Lee <tere...@heroku.com> wrote:
> That's a good point. We'll take a look at adding something here.
>
> -Terence
>
> On Thu, Jul 14, 2011 at 4:48 PM, Francois <fhar...@gmail.com> wrote:
>>
>> Terence
>>  this error has been happening to a lot of people, it might be worth
>> mentioning this in the docs somewhere? I searched for 'uninitialized
>> constant Rake::DSL' in the docs and there was no mention.
>>
>> - F
>>
>> On Jul 14, 10:53 am, Terence Lee <tere...@heroku.com> wrote:
>> > Hello Keenan,
>> >
>> > It's because rake is built into ruby 1.9.2 and the version is 0.8.7 and
>> > that's the one being called here. We're looking into ways to fix this.
>> > In
>> > the meantime, can you try hard coding your rake to 0.8.7 in your
>> > Gemfile?
>> > Once you have that working locally, it should work fine on heroku.
>> >
>> > Best,
>> > Terence
>> >
>> >
>> >
>> > On Wed, Jul 13, 2011 at 9:06 AM, Keenan Brock <kee...@thebrocks.net>
>> > wrote:
>> > >  Hi,
>> >
>> > > Question: Are others able to run: heroku rake db:migrate OR heroku
>> > > console
>> > > "puts Model.count" ?
>> >
>> > > This is probably user error, but I can't figure it out. reminds me of
>> > > not
>> > > specifying RAILS_ENV when running rails console.
>> >
>> > > I had run rake db:seed which populated the Avatar model.
>> > > I view a page on the website that relies upon the Avatar model.
>> > > I ran heroku config:add RAILS_ENV=production (just in case)
>> >
>> > > But from heroku console:
>> >
>> > > *> puts Avatar.count*
>> > > ActiveRecord::StatementInvalid: PGError: ERROR:  relation "avatars"
>> > > does
>> > > not exist
>> > > :             SELECT a.attname, format_type(a.atttypid, a.atttypmod),
>> > > d.adsrc, a.attnotnull
>> > >               FROM pg_attribute a LEFT JOIN pg_attrdef d
>> > >                 ON a.attrelid = d.adrelid AND a.attnum = d.adnum
>> > >              WHERE a.attrelid = '"avatars"'::regclass
>> > >                AND a.attnum > 0 AND NOT a.attisdropped
>> > >              ORDER BY a.attnum
>> >
>> > >
>> > > /app/.bundle/gems/ruby/1.9.1/gems/activerecord-3.0.9/lib/active_record/conn
>> > > ection_adapters/abstract_adapter.rb:207:in
>> > > `rescue in log'
>> > >
>> > > /app/.bundle/gems/ruby/1.9.1/gems/activerecord-3.0.9/lib/active_record/conn
>> > > ection_adapters/abstract_adapter.rb:199:in
>> > > `log'
>> > >
>> > > /app/.bundle/gems/ruby/1.9.1/gems/activerecord-3.0.9/lib/active_record/conn
>> > > ection_adapters/postgresql_adapter.rb:501:in
>> > > `query'
>> > >
>> > > /app/.bundle/gems/ruby/1.9.1/gems/activerecord-3.0.9/lib/active_record/conn
>> > > ection_adapters/postgresql_adapter.rb:1037:in
>> > > `column_definitions'
>> >
>> > > *> heroku rake db:migrate*
>> >
>> > > (in /app)
>> > > rake aborted!
>> > > uninitialized constant Rake::DSL
>> > > /usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:2482:in `const_missing'
>> > > /app/.bundle/gems/ruby/1.9.1/gems/rake-0.9.2/lib/rake/tasklib.rb:8:in
>> > > `<class:TaskLib>'
>> > > /app/.bundle/gems/ruby/1.9.1/gems/rake-0.9.2/lib/rake/tasklib.rb:6:in
>> > > `<module:Rake>'
>> > > /app/.bundle/gems/ruby/1.9.1/gems/rake-0.9.2/lib/rake/tasklib.rb:3:in
>> > > `<top
>> > > (required)>'
>> > > /app/.bundle/gems/ruby/1.9.1/gems/rdoc-3.8/lib/rdoc/task.rb:37:in
>> > > `require'
>> > > /app/.bundle/gems/ruby/1.9.1/gems/rdoc-3.8/lib/rdoc/task.rb:37:in
>> > > `<top
>> > > (required)>'
>> > >
>> > > /app/.bundle/gems/ruby/1.9.1/gems/railties-3.0.9/lib/rails/tasks/documentat
>> > > ion.rake:2:in
>> > > `require'
>> > >
>> > > /app/.bundle/gems/ruby/1.9.1/gems/railties-3.0.9/lib/rails/tasks/documentat
>> > > ion.rake:2:in
>> > > `<top (required)>'
>> > >
>> > > /app/.bundle/gems/ruby/1.9.1/gems/railties-3.0.9/lib/rails/tasks.rb:15:in
>> > > `load'
>> > >
>> > > /app/.bundle/gems/ruby/1.9.1/gems/railties-3.0.9/lib/rails/tasks.rb:15:in
>> > > `block in <top (required)>'
>> > >
>> > > /app/.bundle/gems/ruby/1.9.1/gems/railties-3.0.9/lib/rails/tasks.rb:6:in
>> > > `each'
>> > >
>> > > /app/.bundle/gems/ruby/1.9.1/gems/railties-3.0.9/lib/rails/tasks.rb:6:in
>> > > `<top (required)>'
>> > >
>> > > /app/.bundle/gems/ruby/1.9.1/gems/railties-3.0.9/lib/rails/application.rb:2
>> > > 15:in
>> > > `require'
>> > >
>> > > /app/.bundle/gems/ruby/1.9.1/gems/railties-3.0.9/lib/rails/application.rb:2
>> > > 15:in
>> > > `initialize_tasks'
>> > >
>> > > /app/.bundle/gems/ruby/1.9.1/gems/railties-3.0.9/lib/rails/application.rb:1
>> > > 39:in
>> > > `load_tasks'
>> > >
>> > > /app/.bundle/gems/ruby/1.9.1/gems/railties-3.0.9/lib/rails/application.rb:7
>> > > 7:in
>> > > `method_missing'
>> > > /app/Rakefile:7:in `<top (required)>'
>> > > /usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:2373:in `load'
>> > > /usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:2373:in `raw_load_rakefile'
>> > > /usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:2007:in `block in load_rakefile'
>> > > /usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:2058:in
>> > > `standard_exception_handling'
>> > > /usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:2006:in `load_rakefile'
>> > > /usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:1991:in `run'
>> > > /usr/ruby1.9.2/bin/rake:31:in `<main>'
>> >
>> > > Thanks for any pointers on what I am doing wrong,
>> > > Keenan
>> >
>> > > --Keenan
>> >
>> > > --
>> > > You received this message because you are subscribed to the Google
>> > > Groups
>> > > "Heroku" group.
>> > > To post to this group, send email to heroku@googlegroups.com.
>> > > To unsubscribe from this group, send email to
>> > > heroku+unsubscr...@googlegroups.com.
>> > > For more options, visit this group at
>> > >http://groups.google.com/group/heroku?hl=en.
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "Heroku" group.
>> To post to this group, send email to heroku@googlegroups.com.
>> To unsubscribe from this group, send email to
>> heroku+unsubscr...@googlegroups.com.
>> For more options, visit this group at
>> http://groups.google.com/group/heroku?hl=en.
>>
>
> --
> You received this message because you are subscribed to the Google Groups
> "Heroku" group.
> To post to this group, send email to heroku@googlegroups.com.
> To unsubscribe from this group, send email to
> heroku+unsubscr...@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/heroku?hl=en.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Heroku" group.
To post to this group, send email to heroku@googlegroups.com.
To unsubscribe from this group, send email to 
heroku+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/heroku?hl=en.

Reply via email to