/ / Seltsame Ausnahme mit Mongoid bei Heroku - Rubin, Mongodb, Heroku, Mongoid, Mongoid3

Seltsame Ausnahme mit Mongoid bei Heroku - Rubin, Mongodb, Heroku, Mongoid, Mongoid3

Es gibt einen Fehler beim Heroku, den ich ständig bekomme. Es ist eine Sinatra-App, die Mongoid verwendet. Obwohl ich auch eine Rails-App dort gehostet habe, verursacht sie keinen Fehler, obwohl sie genau dieselben mongoid.yml-Dateien haben.

Hier sind die Protokolle von Heroku, die die Ausnahme zeigen

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"

Antworten:

2 für die Antwort № 1

Der Fehler ist, dass die App keine Verbindung zu einer lokalen Mongo-Instanz herstellen kann, die sie erwartet.

Wenn Sie der Meinung sind, dass die Protokollnachricht lang ist, haben Sie keine automatischen Ausnahmen für die automatische Verkabelung von Java Spring gesehen =).

Ich habe Mongo HQ gerade erst mit meiner Rails-App auf Heroku arbeiten lassen, daher ist mein Vorschlag:

Lauf heroku config Überprüfen Sie in Ihrem Projektverzeichnis, ob Sie RACK_ENV = production definiert haben und MONGOHQ_URL von Heroku definiert wurde.

Wenn MONGOHQ_URL nicht als Umgebungsvariable auf Heroku definiert ist, werden Sie wahrscheinlich nicht ausgeführt heroku addons:add mongohq:sandbox um Heroku mitzuteilen, dass Sie eine Mongo HQ-Instanz haben möchten.

Wenn RACK_ENV = production nicht definiert ist, fügen Sie es einfach mit hinzu: heroku config:add RACK_ENV=production

Starten Sie danach Ihre App neu mit heroku restart und es sollte funktionieren.

Zu Ihrer Information für eine Rails-App (anstelle von Sinatra) wird RACK_ENV zu RAILS_ENV.