2012-09-08 18 views
12

Cuando intento comenzar mi servidor Rails, estoy consiguiendo el error siguiente:rieles no se iniciará debido a la nueva reliquia de error

estoy usando ruby ​​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' 

Es usando la siguiente gema: newrelic_rpm (3.4.2). Si comento la línea newrelic en gemfile, funciona bien,

¿Alguna idea?

+3

Tengo el mismo problema con la nueva versión de la nueva gema reliquia '3.4.2'. No sé qué causa esto, pero con '3.4.1' todo funciona perfecto. Intenta degradar la versión gema. –

Respuesta

10

trabajo en New Relic y hemos rastreado el problema.

Esto ocurre cuando nil se establece explícitamente como el nombre de la aplicación, lo que normalmente ocurre para el desarrollo local de aplicaciones heroku que extraen el nombre de su aplicación de ENV["NEW_RELIC_APP_NAME"]. Dado que esta variable de entorno no se establece normalmente en su cuadro de desarrollo local, entra en la configuración del agente como nulo y bloquea el servidor local. No afecta a las versiones implementadas de la aplicación donde se establece esta variable.

Obviamente, el agente debe manejar este caso con elegancia, y tendremos un parche en el próximo día o dos. Acabamos de completar una importante refacturación de la configuración del agente, y este caso extremo se perdió en nuestras pruebas internas.

etoleb da una buena solución en el comentario. Lo sentimos mucho por causarte este dolor de cabeza.

Si tiene alguna pregunta o inquietud, no dude en enviarme un correo electrónico directamente a [email protected]

Gracias!

+0

Gracias, chicos. Espero su parche para actualizar la gema newrelic. –

+0

obtengo este despliegue en Heroku. La aplicación se despliega, pero el error aparece en la consola de implementación. Solo FYI – JohnMetta

+0

¡Gracias, Samg! – Tony

1

Gracias por el comentario. La respuesta es degradar a 3.4.1.

+0

* una * respuesta es rebajar. ;] Algunas otras opciones se presentan aquí. Me resultó más fácil establecer una env var local para lo que faltaba. – brookr

+0

He cambiado la respuesta correcta. – Tony

3

El problema parece estar relacionado con la configuración app_name que está en blanco en su configuración newrelic. Personalmente fui a través de la instalación Heroku (por lo que su configuración puede ser diferente), pero esto es lo que hice:

Dentro config/newrelic.yml (copiado de https://gist.github.com/2253296) Quité la línea

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

del common config (línea 35 para mí) en el production config (después de la línea 247 para mí), que termina pareciéndose a

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

Genial para ver una respuesta de alguien que puede asumir la responsabilidad! Buen trabajo, Nueva Reliquia. Gracias, @samg.

Dado que el problema es solo un valor de env nulo, en lugar de degradar la gema o robar archivos de configuración, acabo de agregar la variable de entorno.

Es fácil ver lo que el ajuste se encuentra sobre heroku:

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

continuación, he optado por establecer un var env local a través de mi proyecto.rvmrc archivo, donde I por lo que algunas otras cosas similares:

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

Entonces, sólo tomó un cd .. y una cd de nuevo a mi proyecto, y que estaba trabajando con la gema en la versión 3.4.2.

Party on!

Cuestiones relacionadas