-1

There is an error at heroku I keep getting. It's a Sinatra app which uses Mongoid. Although I have a Rails app hosted there as well, it doesn't cause any error despite the fact that they have exactly the same mongoid.yml files.

Here are the logs from heroku showing the exception

me@ubuntu:~/dev$ heroku logs
2013-01-12T13:51:09+00:00 app[web.1]: Moped::Errors::ConnectionFailure - Could not connect to any secondary or primary nodes for replica set <Moped::Cluster nodes=[<Moped::Node resolved_address="127.0.0.1:27017">]>
2013-01-12T13:41:47+00:00 app[web.1]:   /app/vendor/bundle/ruby/1.9.1/gems/moped-1.3.2/lib/moped/cluster.rb:258:in `with_secondary'
2013-01-12T13:41:47+00:00 app[web.1]:   /app/vendor/bundle/ruby/1.9.1/gems/moped-1.3.2/lib/moped/cluster.rb:258:in `with_secondary'
2013-01-12T13:41:47+00:00 app[web.1]:   /app/vendor/bundle/ruby/1.9.1/gems/moped-1.3.2/lib/moped/session/context.rb:43:in `query'
2013-01-12T13:41:47+00:00 app[web.1]:   /app/vendor/bundle/ruby/1.9.1/gems/moped-1.3.2/lib/moped/cluster.rb:258:in `with_secondary'
2013-01-12T13:41:47+00:00 app[web.1]:   /app/vendor/bundle/ruby/1.9.1/gems/moped-1.3.2/lib/moped/cluster.rb:258:in `with_secondary'
2013-01-12T13:41:47+00:00 app[web.1]:   /app/vendor/bundle/ruby/1.9.1/gems/moped-1.3.2/lib/moped/cluster.rb:258:in `with_secondary'
2013-01-12T13:41:47+00:00 app[web.1]:   /app/vendor/bundle/ruby/1.9.1/gems/moped-1.3.2/lib/moped/cluster.rb:258:in `with_secondary'
2013-01-12T13:41:47+00:00 app[web.1]:   /app/vendor/bundle/ruby/1.9.1/gems/moped-1.3.2/lib/moped/cluster.rb:258:in `with_secondary'
2013-01-12T13:41:47+00:00 app[web.1]:   /app/vendor/bundle/ruby/1.9.1/gems/moped-1.3.2/lib/moped/cluster.rb:258:in `with_secondary'
2013-01-12T13:41:47+00:00 app[web.1]:   /app/vendor/bundle/ruby/1.9.1/gems/moped-1.3.2/lib/moped/cluster.rb:258:in `with_secondary'
2013-01-12T13:41:47+00:00 app[web.1]:   /app/vendor/bundle/ruby/1.9.1/gems/moped-1.3.2/lib/moped/cluster.rb:258:in `with_secondary'
2013-01-12T13:41:47+00:00 app[web.1]:   /app/vendor/bundle/ruby/1.9.1/gems/sinatra-1.3.3/lib/sinatra/base.rb:1265:in `call'
2013-01-12T13:41:47+00:00 app[web.1]:   /app/vendor/bundle/ruby/1.9.1/gems/moped-1.3.2/lib/moped/cluster.rb:258:in `with_secondary'
2013-01-12T13:41:47+00:00 app[web.1]:   /app/vendor/bundle/ruby/1.9.1/gems/moped-1.3.2/lib/moped/session/context.rb:104:in `with_node'
2013-01-12T13:41:47+00:00 app[web.1]:   /app/vendor/bundle/ruby/1.9.1/gems/sinatra-1.3.3/lib/sinatra/base.rb:835:in `block (3 levels) in route!'
2013-01-12T13:41:47+00:00 app[web.1]:   /app/vendor/bundle/ruby/1.9.1/gems/moped-1.3.2/lib/moped/cluster.rb:258:in `with_secondary'
2013-01-12T13:41:47+00:00 app[web.1]:   /app/vendor/bundle/ruby/1.9.1/gems/moped-1.3.2/lib/moped/cluster.rb:258:in `with_secondary'
2013-01-12T13:41:47+00:00 app[web.1]:   /app/controllers/sessions_controller.rb:38:in `block in <class:App>'
2013-01-12T13:41:47+00:00 app[web.1]:   /app/vendor/bundle/ruby/1.9.1/gems/sinatra-1.3.3/lib/sinatra/base.rb:936:in `dispatch!'
2013-01-12T13:41:47+00:00 app[web.1]:   /app/vendor/bundle/ruby/1.9.1/gems/sinatra-1.3.3/lib/sinatra/base.rb:1265:in `block in compile!'
2013-01-12T13:41:47+00:00 app[web.1]:   /app/vendor/bundle/ruby/1.9.1/gems/sinatra-1.3.3/lib/sinatra/base.rb:769:in `block in call!'
2013-01-12T13:41:47+00:00 app[web.1]:   /app/vendor/bundle/ruby/1.9.1/gems/moped-1.3.2/lib/moped/cluster.rb:258:in `with_secondary'
2013-01-12T13:41:47+00:00 app[web.1]:   /app/vendor/bundle/ruby/1.9.1/gems/moped-1.3.2/lib/moped/cluster.rb:261:in `with_secondary'
2013-01-12T13:41:47+00:00 app[web.1]:   /app/vendor/bundle/ruby/1.9.1/gems/moped-1.3.2/lib/moped/cluster.rb:258:in `with_secondary'
2013-01-12T13:41:47+00:00 app[web.1]:   /app/vendor/bundle/ruby/1.9.1/gems/moped-1.3.2/lib/moped/cluster.rb:258:in `with_secondary'
2013-01-12T13:41:47+00:00 app[web.1]:   /app/vendor/bundle/ruby/1.9.1/bundler/gems/mongoid-c839bb60e5f9/lib/mongoid/contextual.rb:19:in `first'
2013-01-12T13:41:47+00:00 app[web.1]:   /app/vendor/bundle/ruby/1.9.1/gems/sinatra-1.3.3/lib/sinatra/base.rb:870:in `catch'
2013-01-12T13:41:47+00:00 app[web.1]:   /app/vendor/bundle/ruby/1.9.1/gems/sinatra-1.3.3/lib/sinatra/base.rb:834:in `block in route!'
2013-01-12T13:41:47+00:00 app[web.1]:   /app/vendor/bundle/ruby/1.9.1/gems/sinatra-1.3.3/lib/sinatra/base.rb:921:in `block in invoke'
2013-01-12T13:41:47+00:00 app[web.1]:   /app/vendor/bundle/ruby/1.9.1/gems/moped-1.3.2/lib/moped/query.rb:114:in `first'
2013-01-12T13:41:47+00:00 app[web.1]:   /app/vendor/bundle/ruby/1.9.1/gems/sinatra-1.3.3/lib/sinatra/base.rb:851:in `route_eval'
2013-01-12T13:41:47+00:00 app[web.1]:   /app/vendor/bundle/ruby/1.9.1/gems/sinatra-1.3.3/lib/sinatra/base.rb:755:in `call'
2013-01-12T13:41:47+00:00 app[web.1]:   /app/vendor/bundle/ruby/1.9.1/gems/rack-timeout-0.0.3/lib/rack/timeout.rb:16:in `call'
2013-01-12T13:41:47+00:00 app[web.1]:   /app/vendor/bundle/ruby/1.9.1/gems/rack-timeout-0.0.3/lib/rack/timeout.rb:16:in `block in call'
2013-01-12T13:41:47+00:00 app[web.1]:   /app/vendor/ruby-1.9.3/lib/ruby/1.9.1/timeout.rb:68:in `timeout'
2013-01-12T13:41:47+00:00 app[web.1]:   /app/vendor/bundle/ruby/1.9.1/gems/sinatra-1.3.3/lib/sinatra/base.rb:835:in `[]'
2013-01-12T13:41:47+00:00 app[web.1]:   /app/vendor/bundle/ruby/1.9.1/gems/sinatra-1.3.3/lib/sinatra/base.rb:921:in `catch'
2013-01-12T13:41:47+00:00 app[web.1]:   /app/vendor/bundle/ruby/1.9.1/gems/sinatra-1.3.3/lib/sinatra/base.rb:870:in `process_route'
2013-01-12T13:41:47+00:00 app[web.1]:   /app/vendor/bundle/ruby/1.9.1/gems/sinatra-1.3.3/lib/sinatra/base.rb:769:in `call!'
2013-01-12T13:41:47+00:00 app[web.1]:   /app/vendor/bundle/ruby/1.9.1/gems/rack-protection-1.3.2/lib/rack/protection/base.rb:48:in `call'
2013-01-12T13:41:47+00:00 app[web.1]:   /app/vendor/bundle/ruby/1.9.1/gems/sinatra-1.3.3/lib/sinatra/base.rb:833:in `each'
2013-01-12T13:41:47+00:00 app[web.1]:   /app/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/session/abstract/id.rb:200:in `call'
2013-01-12T13:41:47+00:00 app[web.1]:   /app/vendor/bundle/ruby/1.9.1/gems/rack-protection-1.3.2/lib/rack/protection/xss_header.rb:27:in `call'
2013-01-12T13:41:47+00:00 app[web.1]:   /app/vendor/bundle/ruby/1.9.1/bundler/gems/mongoid-c839bb60e5f9/lib/mongoid/contextual/mongo.rb:186:in `first'
2013-01-12T13:41:47+00:00 app[web.1]:   /app/vendor/bundle/ruby/1.9.1/gems/rack-protection-1.3.2/lib/rack/protection/json_csrf.rb:17:in `call'
2013-01-12T13:41:47+00:00 app[web.1]:   /app/vendor/bundle/ruby/1.9.1/gems/sinatra-1.3.3/lib/sinatra/base.rb:136:in `call'
2013-01-12T13:41:47+00:00 app[web.1]:   /app/vendor/bundle/ruby/1.9.1/gems/sinatra-1.3.3/lib/sinatra/base.rb:1471:in `synchronize'
2013-01-12T13:41:47+00:00 app[web.1]:   /app/vendor/bundle/ruby/1.9.1/gems/rack-protection-1.3.2/lib/rack/protection/xss_header.rb:27:in `call'
2013-01-12T13:41:47+00:00 app[web.1]:   /app/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/logger.rb:15:in `call'
2013-01-12T13:41:47+00:00 app[web.1]:   /app/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/builder.rb:134:in `call'
2013-01-12T13:41:47+00:00 app[web.1]:   /app/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/session/abstract/id.rb:205:in `context'
2013-01-12T13:41:47+00:00 app[web.1]:   /app/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/methodoverride.rb:21:in `call'
2013-01-12T13:41:47+00:00 app[web.1]:   /app/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/urlmap.rb:49:in `call'
2013-01-12T13:41:47+00:00 app[web.1]:   /app/vendor/bundle/ruby/1.9.1/gems/rack-protection-1.3.2/lib/rack/protection/base.rb:48:in `call'
2013-01-12T13:41:47+00:00 app[web.1]:   /app/vendor/bundle/ruby/1.9.1/gems/sinatra-1.3.3/lib/sinatra/base.rb:99:in `call'
2013-01-12T13:41:47+00:00 app[web.1]:   /app/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/urlmap.rb:49:in `each'
2013-01-12T13:41:47+00:00 app[web.1]:   /app/vendor/bundle/ruby/1.9.1/gems/rack-protection-1.3.2/lib/rack/protection/path_traversal.rb:16:in `call'
2013-01-12T13:41:47+00:00 app[web.1]:   /app/vendor/bundle/ruby/1.9.1/gems/sinatra-1.3.3/lib/sinatra/base.rb:129:in `call'
2013-01-12T13:41:47+00:00 app[web.1]:   /app/vendor/bundle/ruby/1.9.1/gems/sinatra-1.3.3/lib/sinatra/base.rb:1389:in `call'
2013-01-12T13:41:47+00:00 app[web.1]:   /app/vendor/bundle/ruby/1.9.1/gems/rack-protection-1.3.2/lib/rack/protection/base.rb:48:in `call'
2013-01-12T13:41:47+00:00 app[web.1]:   /app/vendor/bundle/ruby/1.9.1/gems/sinatra-1.3.3/lib/sinatra/base.rb:1389:in `block in call'
2013-01-12T13:41:47+00:00 app[web.1]:   /app/vendor/bundle/ruby/1.9.1/gems/exceptional-2.0.33/lib/exceptional/integration/rack.rb:21:in `call'
2013-01-12T13:41:47+00:00 app[web.1]:   /app/vendor/bundle/ruby/1.9.1/gems/sinatra-1.3.3/lib/sinatra/base.rb:835:in `block (2 levels) in route!'
2013-01-12T13:41:47+00:00 app[web.1]:   /app/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/session/abstract/id.rb:205:in `context'
2013-01-12T13:41:47+00:00 app[web.1]:   /app/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/commonlogger.rb:20:in `call'
2013-01-12T13:41:47+00:00 app[web.1]:   /app/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/head.rb:9:in `call'
2013-01-12T13:41:47+00:00 app[web.1]:   /app/vendor/bundle/ruby/1.9.1/gems/moped-1.3.2/lib/moped/cluster.rb:258:in `with_secondary'
2013-01-12T13:41:47+00:00 app[web.1]:   /app/vendor/bundle/ruby/1.9.1/gems/moped-1.3.2/lib/moped/cluster.rb:258:in `with_secondary'
2013-01-12T13:41:47+00:00 app[web.1]:   /app/vendor/bundle/ruby/1.9.1/gems/sinatra-1.3.3/lib/sinatra/base.rb:921:in `invoke'
2013-01-12T13:41:47+00:00 app[web.1]:   /app/vendor/bundle/ruby/1.9.1/gems/sinatra-1.3.3/lib/sinatra/base.rb:872:in `block in process_route'
2013-01-12T13:41:47+00:00 app[web.1]:   /app/vendor/bundle/ruby/1.9.1/gems/sinatra-1.3.3/lib/sinatra/base.rb:833:in `route!'
2013-01-12T13:41:47+00:00 app[web.1]:   /app/vendor/bundle/ruby/1.9.1/gems/rack-protection-1.3.2/lib/rack/protection/base.rb:48:in `call'
2013-01-12T13:41:47+00:00 app[web.1]:   /app/vendor/bundle/ruby/1.9.1/gems/thin-1.5.0/lib/thin/connection.rb:81:in `block in pre_process'
2013-01-12T13:41:47+00:00 app[web.1]:   /app/vendor/bundle/ruby/1.9.1/gems/thin-1.5.0/bin/thin:6:in `<top (required)>'
2013-01-12T13:41:47+00:00 app[web.1]:   /app/vendor/bundle/ruby/1.9.1/gems/thin-1.5.0/lib/thin/connection.rb:79:in `pre_process'
2013-01-12T13:41:47+00:00 app[web.1]:   /app/vendor/bundle/ruby/1.9.1/gems/thin-1.5.0/lib/thin/server.rb:159:in `start'
2013-01-12T13:41:47+00:00 app[web.1]:   /app/vendor/bundle/ruby/1.9.1/gems/thin-1.5.0/lib/thin/backends/base.rb:63:in `start'
2013-01-12T13:41:47+00:00 app[web.1]:   /app/vendor/bundle/ruby/1.9.1/bin/thin:23:in `<main>'
2013-01-12T13:41:47+00:00 app[web.1]:   /app/vendor/bundle/ruby/1.9.1/gems/eventmachine-1.0.0/lib/eventmachine.rb:187:in `run_machine'
2013-01-12T13:41:47+00:00 app[web.1]:   /app/vendor/bundle/ruby/1.9.1/gems/thin-1.5.0/lib/thin/connection.rb:79:in `catch'
2013-01-12T13:41:47+00:00 app[web.1]:   /app/vendor/bundle/ruby/1.9.1/bin/thin:23:in `load'
2013-01-12T13:41:47+00:00 app[web.1]:   /app/vendor/bundle/ruby/1.9.1/gems/thin-1.5.0/lib/thin/connection.rb:39:in `receive_data'
2013-01-12T13:41:47+00:00 app[web.1]:   /app/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/urlmap.rb:64:in `block in call'
2013-01-12T13:41:47+00:00 app[web.1]:   /app/vendor/bundle/ruby/1.9.1/gems/thin-1.5.0/lib/thin/connection.rb:54:in `process'
2013-01-12T13:41:47+00:00 app[web.1]:   /app/vendor/bundle/ruby/1.9.1/gems/thin-1.5.0/lib/thin/controllers/controller.rb:86:in `start'
2013-01-12T13:41:47+00:00 app[web.1]:   /app/vendor/bundle/ruby/1.9.1/gems/eventmachine-1.0.0/lib/eventmachine.rb:187:in `run'
2013-01-12T13:41:47+00:00 app[web.1]:   /app/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/session/abstract/id.rb:200:in `call'
2013-01-12T13:41:47+00:00 app[web.1]:   /app/vendor/bundle/ruby/1.9.1/gems/thin-1.5.0/lib/thin/runner.rb:152:in `run!'
2013-01-12T13:41:47+00:00 app[web.1]:   /app/vendor/bundle/ruby/1.9.1/gems/thin-1.5.0/lib/thin/runner.rb:187:in `run_command'

mongoid.yml

development:
  sessions:
    default:
      database: dev123
      hosts:
        - localhost:27017
      options:
        timeout: 20

production:
  sessions:
    default:
      uri: <%= ENV['MONGOHQ_URL'] %>
      options:
        skip_version_check: true

Gemfile

gem "mongoid", git: "https://github.com/mongoid/mongoid.git"
Alexandre
  • 13,030
  • 35
  • 114
  • 173

1 Answers1

2

The error is the app can't connect to a local mongo instance it expects to be running.

If you think that log message is long, you haven't seen Java Spring auto-wiring exceptions =) Although in this case, the top error message was enough to determine the problem.

I've just got Mongo HQ working with my Rails app on Heroku, so my suggestion is:

Run heroku config in your project directory to check that you have defined RACK_ENV=production and MONGOHQ_URL has been defined by Heroku.

If MONGOHQ_URL is not defined as an environment variable on Heroku, chances are you haven't run heroku addons:add mongohq:sandbox to tell Heroku you want a Mongo HQ instance.

If RACK_ENV=production is not defined, just add it with: heroku config:add RACK_ENV=production

After this, restart your app with heroku restart and it should work.

FYI for a Rails app (instead of Sinatra) RACK_ENV becomes RAILS_ENV.

robbie613
  • 675
  • 1
  • 10
  • 8