2013-04-23 13 views
14

ho fatto un nuovo Rails 4 beta app e schierato a Heroku (usando rubino 2.0.0, e Unicorn tramite un Procfile).Rails 4 app sul Heroku è 500ing, ma nessun messaggio di errore nei registri

Funziona benissimo a livello locale con foreman start, ma quando ho visitare la home page dell'app schierato, ottengo solo l'errore standard Heroku 500:

We're sorry, but something went wrong. 
If you are the application owner check the logs for more information. 

Tuttavia, nei registri, non ci sono errori . Non ho idea di che cosa sta causando il 500.

Ecco l'uscita dal mio ultimo git push heroku master:

Counting objects: 6, done. 
Delta compression using up to 8 threads. 
Compressing objects: 100% (4/4), done. 
Writing objects: 100% (4/4), 656 bytes, done. 
Total 4 (delta 2), reused 0 (delta 0) 

-----> Ruby/Rails app detected 
-----> Using Ruby version: ruby-2.0.0 
-----> Installing dependencies using Bundler version 1.3.2 
     Running: bundle install --without development:test --path vendor/bundle --binstubs vendor/bundle/bin --deployment 
     Using rake (10.0.4) 
     Using i18n (0.6.4) 
     Using minitest (4.7.3) 
     Using multi_json (1.7.2) 
     Using atomic (1.1.8) 
     Using thread_safe (0.1.0) 
     Using tzinfo (0.3.37) 
     Using activesupport (4.0.0.beta1) 
     Using builder (3.1.4) 
     Using erubis (2.7.0) 
     Using rack (1.5.2) 
     Using rack-test (0.6.2) 
     Using actionpack (4.0.0.beta1) 
     Using mime-types (1.23) 
     Using polyglot (0.3.3) 
     Using treetop (1.4.12) 
     Using mail (2.5.3) 
     Using actionmailer (4.0.0.beta1) 
     Using activemodel (4.0.0.beta1) 
     Using activerecord-deprecated_finders (0.0.3) 
     Using arel (4.0.0) 
     Using activerecord (4.0.0.beta1) 
     Using coffee-script-source (1.6.2) 
     Using execjs (1.4.0) 
     Using coffee-script (2.2.0) 
     Using json (1.7.7) 
     Using rdoc (3.12.2) 
     Using thor (0.18.1) 
     Using railties (4.0.0.beta1) 
     Using coffee-rails (4.0.0) 
     Using hike (1.2.2) 
     Using jbuilder (1.0.2) 
     Using jquery-rails (2.2.1) 
     Using kgio (2.8.0) 
     Using mysql2 (0.3.11) 
     Using bundler (1.3.2) 
     Using tilt (1.3.7) 
     Using sprockets (2.9.3) 
     Using sprockets-rails (2.0.0.rc4) 
     Using rails (4.0.0.beta1) 
     Using raindrops (0.11.0) 
     Using sass (3.2.8) 
     Using sass-rails (4.0.0.rc1) 
     Using turbolinks (1.1.1) 
     Using uglifier (2.0.1) 
     Using unicorn (4.6.2) 
     Your bundle is complete! It was installed into ./vendor/bundle 
     Cleaning up the bundler cache. 
-----> Preparing app for Rails asset pipeline 
     Running: rake assets:precompile 
     I, [2013-04-23T22:28:44.559735 #871] INFO -- : Writing /tmp/build_33m76p0rij8a5/public/assets/rails-d8fb6a2617998f32edf5edb354fc5326.png 
     I, [2013-04-23T22:28:49.911890 #871] INFO -- : Writing /tmp/build_33m76p0rij8a5/public/assets/application-d4a508061cd56ce9e544945495285e0c.js 
     I, [2013-04-23T22:28:50.120141 #871] INFO -- : Writing /tmp/build_33m76p0rij8a5/public/assets/application-a3b89b66a8471f3e75abb239e3b35c7d.css 
     Asset precompilation completed (8.30s) 
-----> Rails plugin injection 
-----> Discovering process types 
     Procfile declares types  -> web 
     Default types for Ruby/Rails -> console, rake, worker 

-----> Compiled slug size: 35.0MB 
-----> Launching... done, v21 
     http://blofs.herokuapp.com deployed to Heroku 

To [email protected]:blofs.git 
    32e51a2..37d989c master -> master 

Ed ecco i log da quella spinta:

2013-04-23T22:28:06.650049+00:00 heroku[slugc]: Slug compilation started 
2013-04-23T22:29:11.194613+00:00 heroku[api]: Release v21 created by [email protected] 
2013-04-23T22:29:11.365908+00:00 heroku[api]: Deploy 37d989c by [email protected] 
2013-04-23T22:29:11.441066+00:00 heroku[web.1]: State changed from up to starting 
2013-04-23T22:29:11.932952+00:00 heroku[slugc]: Slug compilation finished 
2013-04-23T22:29:12.858139+00:00 heroku[web.1]: Stopping all processes with SIGTERM 
2013-04-23T22:29:13.194707+00:00 app[web.1]: I, [2013-04-23T22:29:13.194495 #2] INFO -- : reaped #<Process::Status: pid 5 exit 0> worker=0 
2013-04-23T22:29:13.194902+00:00 app[web.1]: I, [2013-04-23T22:29:13.194747 #2] INFO -- : master complete 
2013-04-23T22:29:14.312014+00:00 heroku[web.1]: Process exited with status 0 
2013-04-23T22:29:14.338943+00:00 heroku[web.1]: Starting process with command `bundle exec unicorn -p 25281 -E $RACK_ENV` 
2013-04-23T22:29:15.717687+00:00 app[web.1]: I, [2013-04-23T22:29:15.717387 #2] INFO -- : listening on addr=0.0.0.0:25281 fd=7 
2013-04-23T22:29:15.717916+00:00 app[web.1]: I, [2013-04-23T22:29:15.717861 #2] INFO -- : worker=0 spawning... 
2013-04-23T22:29:15.721526+00:00 app[web.1]: I, [2013-04-23T22:29:15.721385 #2] INFO -- : master process ready 
2013-04-23T22:29:15.723623+00:00 app[web.1]: I, [2013-04-23T22:29:15.723389 #5] INFO -- : worker=0 spawned pid=5 
2013-04-23T22:29:15.723805+00:00 app[web.1]: I, [2013-04-23T22:29:15.723750 #5] INFO -- : Refreshing Gem list 
2013-04-23T22:29:16.305653+00:00 heroku[web.1]: State changed from starting to up 
2013-04-23T22:29:16.891063+00:00 app[web.1]: I, [2013-04-23T22:29:16.890882 #5] INFO -- : worker=0 ready 

Dopo di che, Ho provato a caricare la home page nel mio browser, e queste sono le uniche due righe aggiunte nei log:

2013-04-23T22:29:26.685651+00:00 heroku[router]: at=info method=GET path=/ host=blofs.herokuapp.com fwd="46.65.16.44" dyno=web.1 connect=2ms service=156ms status=500 bytes=706 
2013-04-23T22:29:26.973073+00:00 heroku[router]: at=info method=GET path=/favicon.ico host=blofs.herokuapp.com fwd="46.65.16.44" dyno=web.1 connect=1ms service=5ms status=200 bytes=0 

Qualcuno ha idea di cosa il problema potrebbe essere?

Altre cose che potrebbero essere rilevanti:

  • ho disabilitato il Heroku Postgres addon di serie e sto usando l'addon ClearDB MySQL, invece.
  • Ho provato a cambiare manualmente la variabile di ambiente DATABASE_URL dal valore precedente (che era ancora l'URL postgres anche dopo aver rimosso l'addon postgres) allo stesso valore della variabile CLEARDB_DATABASE_URL var (quella mysql). Questo non sembra fare alcuna differenza.
  • Ho aggiunto ruby '2.0.0' al mio Gemfile e aggiunto mysql2 e unicorn gemme. E ho usato il config/unicorn.rb suggerito al https://devcenter.heroku.com/articles/rails-unicorn
  • mio Procfile contiene solo: web: bundle exec unicorn -p $PORT -E $RACK_ENV
  • Funziona benissimo localmente con foreman start.
  • Oltre alle modifiche sopra descritte, è fondamentalmente un app out-of-the-box creata con rails new.
+3

Non sembra che tu abbia le rotaie di heroku 4 gemme. Vedi https://devcenter.heroku.com/articles/rails4 –

risposta

34

È necessario aggiungere gem 'rails_12factor' al file Gemfile. Si tratta di una temporanea correzione da Heroku per rendere il lavoro Rails 4+ con il loro servizio.

Vedi Getting Started with Rails 4.x on Heroku o Getting Started with Rails 5.x on Heroku.

+1

Devi accettare questa risposta poiché è molto probabile che sia la chiave per risolvere il tuo problema. – MoMolog

+1

Assicuratevi di cambiare 'config.log_level =: debug' nel vostro production.rb per i registri di debug completi. –

+0

Questo lavoro per me! Prima di tutto aggiungo la gemma e poi ho ottenuto un errore di registro più dettagliato. Quindi eseguo 'heroku run rake db: migrate' e dopo questa applicazione funzionava! – adripanico

1

Queste risposte indicano come attivare i registri in modo da poter cercare l'errore, ma in realtà non rispondere alla domanda, 'Che cosa potrebbe essere sbagliato?'

A parte i suggerimenti della risposta da @Lauren a this question, ecco un'altra possibilità - se si tenta di accedere alla costante ENV nell'ambiente di produzione e non è stato impostato tramite heroku config:set, che sarà anche causare un errore molto silenzioso 500 .

Problemi correlati