2012-09-08 30 views
12

Khi tôi cố gắng khởi động máy chủ Rails của tôi, tôi nhận được lỗi sau:Rails máy chủ sẽ không bắt đầu vì lỗi di tích mới

Tôi đang sử dụng 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' 

Đó là sử dụng đá quý sau đây: newrelic_rpm (3.4.2). Nếu tôi nhận xét dòng mới trong gemfile nó hoạt động tốt,

Bất kỳ ý tưởng nào?

+3

Tôi có cùng một vấn đề với phiên bản mới của đá quý relic mới '3.4.2'. Không biết điều gì gây ra điều này, nhưng với '3.4.1' mọi thứ hoạt động hoàn hảo. Cố gắng hạ cấp phiên bản đá quý. –

Trả lời

10

tôi làm việc tại New Relic và chúng tôi đã theo dõi xuống vấn đề.

Điều này xảy ra khi nil được đặt rõ ràng làm tên ứng dụng, thường xảy ra cho phát triển cục bộ các ứng dụng heroku kéo tên ứng dụng của chúng từ ENV["NEW_RELIC_APP_NAME"]. Vì biến môi trường này thường không được thiết lập trên hộp dev cục bộ của bạn, nó đi vào cấu hình của tác nhân là nil và treo máy chủ cục bộ. Nó không ảnh hưởng đến phiên bản được triển khai của ứng dụng mà biến này được đặt.

Rõ ràng đại lý sẽ xử lý trường hợp này một cách duyên dáng và chúng tôi sẽ có bản vá trong một hoặc hai ngày tiếp theo. Chúng tôi vừa hoàn thành việc tái cấu trúc chính cấu hình của tác nhân và trường hợp cạnh này bị bỏ qua trong thử nghiệm nội bộ của chúng tôi.

etoleb đưa ra cách giải quyết tốt trong nhận xét. Chúng tôi rất tiếc vì đã khiến bạn đau đầu.

Nếu bạn có bất kỳ câu hỏi hoặc thắc mắc nào, vui lòng gửi email trực tiếp cho tôi theo địa chỉ [email protected]

Cảm ơn!

+0

Thanx, các bạn. Mong muốn bản vá của bạn nâng cấp đá quý newrelic. –

+0

Tôi nhận được điều này triển khai cho Heroku. Ứng dụng triển khai nhưng lỗi xuất hiện trong bảng điều khiển triển khai. Chỉ cần FYI – JohnMetta

+0

Cảm ơn bạn samg! – Tony

1

Cảm ơn nhận xét. Câu trả lời là hạ xuống 3.4.1.

+0

* một câu trả lời * là hạ cấp. ;] Một vài tùy chọn khác được trình bày ở đây. Tôi tìm thấy nó dễ nhất để chỉ cần thiết lập một địa phương env var cho những gì đã mất tích. – brookr

+0

Tôi đã thay đổi câu trả lời đúng. – Tony

3

Sự cố có vẻ liên quan đến cài đặt app_name bị trống trong cấu hình mới của bạn. Cá nhân tôi đã trải qua quá trình cài đặt Heroku (do cấu hình của bạn có thể trông khác) nhưng đây là những gì tôi đã làm:

Trong config/newrelic.yml (sao chép từ https://gist.github.com/2253296) Tôi đã gỡ bỏ dòng

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

từ common cấu hình (dòng 35 đối với tôi) vào production cấu hình (sau dòng 247 cho tôi), mà gió lên trông như

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

Tuyệt vời để xem câu trả lời của người có trách nhiệm! Làm việc tốt, di tích mới. Cảm ơn, @samg.

Vì vấn đề chỉ là giá trị env nil, thay vì hạ cấp đá quý hoặc làm việc với các tệp cấu hình, tôi chỉ thêm biến môi trường.

Thật dễ dàng để xem những gì các thiết lập là trên Heroku:

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

sau đó tôi đã lựa chọn để thiết lập một var env địa phương thông qua dự án của tôi.tập tin rvmrc, nơi tôi vì vậy một số điều tương tự khác:

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

Sau đó, nó chỉ mất một cd ..cd lại vào dự án của tôi, và nó đã làm việc với các đá quý trên phiên bản 3.4.2.

Tiệc trên!

Các vấn đề liên quan