2012-09-08 12 views
12

Quando provo ad iniziare il mio server Rails, sto ottenendo il seguente errore:Rails non si avvia a causa della nuova errore reliquia

Sto usando rubino 1.9.2

=> Booting WEBrick 
=> Rails 3.1.8 application starting in development on http://0.0.0.0:3000 
=> Call with -d to detach 
=> Ctrl-C to shutdown server 
/Users/toptier/.rvm/gems/ruby-1.9.2-p320/gems/newrelic_rpm-3.4.2/lib/new_relic/agent/agent.rb:318:in `log_app_names': undefined method `join' for nil:NilClass (NoMethodError) 
from /Users/toptier/.rvm/gems/ruby-1.9.2-p320/gems/newrelic_rpm-3.4.2/lib/new_relic/agent/agent.rb:439:in `start' 
from /Users/toptier/.rvm/gems/ruby-1.9.2-p320/gems/newrelic_rpm-3.4.2/lib/new_relic/control/instance_methods.rb:95:in `start_agent' 
from /Users/toptier/.rvm/gems/ruby-1.9.2-p320/gems/newrelic_rpm-3.4.2/lib/new_relic/control/instance_methods.rb:83:in `init_plugin' 
from /Users/toptier/.rvm/gems/ruby-1.9.2-p320/gems/newrelic_rpm-3.4.2/lib/newrelic_rpm.rb:36:in `block in <class:Railtie>' 
from /Users/toptier/.rvm/gems/ruby-1.9.2-p320/gems/railties-3.1.8/lib/rails/initializable.rb:30:in `instance_exec' 
from /Users/toptier/.rvm/gems/ruby-1.9.2-p320/gems/railties-3.1.8/lib/rails/initializable.rb:30:in `run' 
from /Users/toptier/.rvm/gems/ruby-1.9.2-p320/gems/railties-3.1.8/lib/rails/initializable.rb:55:in `block in run_initializers' 
from /Users/toptier/.rvm/gems/ruby-1.9.2-p320/gems/railties-3.1.8/lib/rails/initializable.rb:54:in `each' 
from /Users/toptier/.rvm/gems/ruby-1.9.2-p320/gems/railties-3.1.8/lib/rails/initializable.rb:54:in `run_initializers' 
from /Users/toptier/.rvm/gems/ruby-1.9.2-p320/gems/railties-3.1.8/lib/rails/application.rb:96:in `initialize!' 
from /Users/toptier/.rvm/gems/ruby-1.9.2-p320/gems/railties-3.1.8/lib/rails/railtie/configurable.rb:30:in `method_missing' 
from /Users/toptier/Desktop/Proyectos/CursoIngles/config/environment.rb:5:in `<top (required)>' 
from /Users/toptier/.rvm/gems/ruby-1.9.2-p320/gems/activesupport-3.1.8/lib/active_support/dependencies.rb:240:in `require' 
from /Users/toptier/.rvm/gems/ruby-1.9.2-p320/gems/activesupport-3.1.8/lib/active_support/dependencies.rb:240:in `block in require' 

E ' utilizzando la gemma seguente: newrelic_rpm (3.4.2). Se commento la riga newrelic in gemfile funziona bene,

Qualche idea?

+3

Ho lo stesso problema con la nuova versione della nuova gemma relic '3.4.2'. Non so cosa causi questo, ma con '3.4.1' tutto funziona perfettamente. Prova a eseguire il downgrade della versione gem. –

risposta

10

io lavoro alla New Relic e abbiamo rintracciato il problema.

Ciò accade quando nil è impostato esplicitamente come nome dell'app, che di solito accade per lo sviluppo locale delle app di heroku che estraggono il nome della propria app da ENV["NEW_RELIC_APP_NAME"]. Dal momento che questa variabile d'ambiente non è tipicamente impostata sulla propria unità di sviluppo locale, entra nella configurazione dell'agente come zero e arresta il server locale. Non ha effetto sulle versioni distribuite dell'app in cui è impostata questa variabile.

Ovviamente l'agente dovrebbe gestire questo caso con garbo, e avremo una patch fuori nei prossimi giorni o due. Abbiamo appena completato un importante refactoring della configurazione dell'agente e questo caso limite è stato perso nei nostri test interni.

etoleb offre una buona soluzione alternativa nel commento. Siamo molto dispiaciuti di averti causato questo mal di testa.

Se avete domande o dubbi non esitate a scrivermi direttamente a [email protected]

Grazie!

+0

Grazie, ragazzi. In attesa della tua patch per aggiornare la gemma newrelic. –

+0

Ho questo schieramento su Heroku. L'app viene distribuita, ma l'errore compare nella console di distribuzione. Solo FYI – JohnMetta

+0

Grazie samg! – Tony

1

Grazie per il commento. La risposta è il downgrade alla 3.4.1.

+0

* una * risposta è il downgrade. ;] Alcune altre opzioni sono presentate qui. Ho trovato più semplice impostare solo un env var locale per quello che mancava. – brookr

+0

Ho cambiato la risposta corretta. – Tony

3

Il problema sembra essere correlato all'impostazione app_name vuota nella configurazione newrelic. Personalmente sono andato attraverso l'installazione Heroku (così il vostro config potrebbe essere diversa), ma questo è quello che ho fatto:

Entro config/newrelic.yml (copiato da https://gist.github.com/2253296) ho tolto la linea

app_name: <%= ENV["NEW_RELIC_APP_NAME"] %> 

dal common config (linea 35 per me) nel production config (dopo la linea 247 per me), che si snoda per assomigliare

production: 
    <<: *default_settings 
    monitor_mode: true 
    app_name: <%= ENV["NEW_RELIC_APP_NAME"] %> 
3

Ottimo per vedere una risposta da qualcuno che può assumersi la responsabilità! Bel lavoro, nuova reliquia. Grazie, @samg.

Poiché il problema è solo un valore ENV nullo, piuttosto che il downgrade della gemma o il diddling con i file di configurazione, ho appena aggiunto la variabile di ambiente.

E 'facile vedere ciò che l'impostazione è su Heroku:

$ heroku config 
    ... 
NEW_RELIC_APP_NAME: my_app_name 
NEW_RELIC_ID:   123456 
NEW_RELIC_LICENSE_KEY: 982987ae987987af98798something7e897987987c7b9d7 
NEW_RELIC_LOG:   stdout 
... 

Ho quindi optato per impostare un var env locale tramite il mio progetto di.file di rvmrc, dove io così alcune altre cose simili:

rvm use [email protected] --create 
export PATH=bin:$PATH 
export NEW_RELIC_APP_NAME=my_app_name 

poi appena preso un cd .. e un cd nuovamente a mio progetto, e che stava lavorando con la gemma nella versione 3.4.2.

Party on!

Problemi correlati