/ / Mimoriadna výnimka s mongoidom na Heroku - rubín, mongodb, heroku, mongoid, mongoid3

Zvláštna výnimka s mongoidom v Heroku - rubín, mongodb, heroku, mongoid, mongoid3

Pri heroku sa stále vyskytuje chyba. Je to aplikácia Sinatra, ktorá používa Mongoid. Aj keď tu mám tiež aplikáciu Rails, nespôsobí žiadnu chybu napriek skutočnosti, že má presne rovnaké súbory mongoid.yml.

Tu sú záznamy z heroku, ktoré ukazujú výnimku

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"

odpovede:

2 pre odpoveď č. 1

Chyba je v tom, že sa aplikácia nemôže pripojiť k lokálnej inštancii, ktorú očakáva, že bude spustená.

Ak si myslíte, že správa v protokole je dlhá, nevideli ste výnimky automatického prepojenia Java Spring =) Aj keď v tomto prípade bola na určenie problému dostatočná horná chybová správa.

Práve som dostal do práce Mongo HQ s mojou aplikáciou Rails na Heroku, takže môj návrh je:

beh heroku config vo vašom projektovom adresári skontrolujte, či ste definovali RACK_ENV = production a MONGOHQ_URL bol definovaný spoločnosťou Heroku.

Ak MONGOHQ_URL nie je na Heroku definovaná ako premenná prostredia, je pravdepodobné, že nemáte spustený heroku addons:add mongohq:sandbox aby ste Heroku povedali, že chcete inštanciu ústredia Mongo.

Ak RACK_ENV = produkcia nie je definovaná, jednoducho ju pridajte pomocou: heroku config:add RACK_ENV=production

Potom reštartujte aplikáciu pomocou heroku restart a malo by to fungovať.

FYI pre aplikáciu Rails (namiesto Sinatra) sa RACK_ENV stáva RAILS_ENV.