2010-05-28 36 views
6

Tôi hy vọng ai đó có thể giúp tôi với một vấn đề mà tôi chắc chắn là một lỗi người dùng.Rails, Passenger and Memcached: Không thể tìm thấy máy chủ trong quá trình khởi tạo

Chi tiết cấu hình bên dưới hoạt động trong tất cả các môi trường khác của tôi bao gồm tích hợp, phát triển và qa. Tuy nhiên, các máy chủ sản xuất cung cấp cho các lỗi sau:

<ActionController::Session::MemCacheStore:0x2b45f6acb248> unable to find server during initialization. 

Khi tôi telnet vào hộp memcached từ máy chủ có vấn đề và chạy 'số liệu thống kê', tôi nhận được:

STAT pid 16136 
STAT uptime 7398638 
STAT time 1275059978  
STAT version 1.2.8  
STAT pointer_size 64 
STAT rusage_user 7.085922 
STAT rusage_system 13.275981 
STAT curr_items 10878 
STAT total_items 11441 
STAT bytes 2020180 
STAT curr_connections 5 
STAT total_connections 306 
STAT connection_structures 11 
STAT cmd_flush 0 
STAT cmd_get 457326 
STAT cmd_set 11441 
STAT get_hits 412184 
STAT get_misses 45142 
STAT evictions 0 
STAT bytes_read 22600329 
STAT bytes_written 53036649 
STAT limit_maxbytes 30064771072 
STAT threads 5 
STAT accepting_conns 1 
STAT listen_disabled_num 0 

Dưới đây là cấu hình chi tiết và stacktrace.

config/environment.rb (những phần quan trọng):

config.action_controller.session_store = :mem_cache_store 
config.gem "memcache-client", :lib => 'memcache' 

config/môi trường/production.rb:

config.cache_store = :mem_cache_store 

require 'memcache' 

# Caching 
# Memcached configuration 
memcache_options = { 
    :c_threshold => 100_000, 
    :compression => true, 
    :debug => false, 
    :namespace => 'gucci', 
    :readonly => false, 
    :urlencode => false, 
    :multithread => true 
} 

CACHE = MemCache.new memcache_options 
CACHE.servers = ['10.x.x.x:11211'] 

stacktrace:

/var/www/oro/production/releases/20100528130253/vendor/rails/actionpack/lib/action_controller/session/mem_cache_store.rb 20  in `initialize' 
1 /var/www/oro/production/releases/20100528130253/vendor/rails/actionpack/lib/action_controller/middleware_stack.rb 72 in `new' 
2 /var/www/oro/production/releases/20100528130253/vendor/rails/actionpack/lib/action_controller/middleware_stack.rb 72 in `build' 
3 /var/www/oro/production/releases/20100528130253/vendor/rails/actionpack/lib/action_controller/middleware_stack.rb 116  in `build' 
4 /var/www/oro/production/releases/20100528130253/vendor/rails/activesupport/lib/active_support/inflector.rb 361  in `inject' 
5 /var/www/oro/production/releases/20100528130253/vendor/rails/actionpack/lib/action_controller/middleware_stack.rb 116  in `each' 
6 /var/www/oro/production/releases/20100528130253/vendor/rails/actionpack/lib/action_controller/middleware_stack.rb 116  in `inject' 
7 /var/www/oro/production/releases/20100528130253/vendor/rails/actionpack/lib/action_controller/middleware_stack.rb 116  in `build' 
8 /var/www/oro/production/releases/20100528130253/vendor/rails/actionpack/lib/action_controller/dispatcher.rb  130  in `build_middleware_stack' 
9 /var/www/oro/production/releases/20100528130253/vendor/rails/actionpack/lib/action_controller/dispatcher.rb  81 in `initialize' 
10 /var/www/oro/production/releases/20100528130253/vendor/rails/actionpack/lib/action_controller/dispatcher.rb  51 in `new' 
11 /var/www/oro/production/releases/20100528130253/vendor/rails/actionpack/lib/action_controller/dispatcher.rb  51 in `run_prepare_callbacks' 
12 /var/www/oro/production/releases/20100528130253/vendor/rails/railties/lib/initializer.rb 631  in `prepare_dispatcher' 
13 /var/www/oro/production/releases/20100528130253/vendor/rails/railties/lib/initializer.rb 185  in `process' 
14 /var/www/oro/production/releases/20100528130253/vendor/rails/railties/lib/initializer.rb 113  in `send' 
15 /var/www/oro/production/releases/20100528130253/vendor/rails/railties/lib/initializer.rb 113  in `run' 
16 /var/www/oro/production/releases/20100528130253/config/environment.rb 29 
17 /usr/local//lib/ruby/site_ruby/1.8/rubygems/custom_require.rb 31 in `gem_original_require' 
18 /usr/local//lib/ruby/site_ruby/1.8/rubygems/custom_require.rb 31 in `require' 
19 /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.10/lib/phusion_passenger/railz/application_spawner.rb 303  in `preload_application' 
20 /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.10/lib/phusion_passenger/railz/application_spawner.rb 252  in `initialize_server' 
21 /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.10/lib/phusion_passenger/utils.rb 255  in `report_app_init_status' 
22 /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.10/lib/phusion_passenger/railz/application_spawner.rb 237  in `initialize_server' 
23 /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.10/lib/phusion_passenger/abstract_server.rb  194  in `start_synchronously' 
24 /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.10/lib/phusion_passenger/abstract_server.rb  163  in `start' 
25 /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.10/lib/phusion_passenger/railz/application_spawner.rb 213  in `start' 
26 /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.10/lib/phusion_passenger/spawn_manager.rb 262  in `spawn_rails_application' 
27 /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.10/lib/phusion_passenger/abstract_server_collection.rb 126  in `lookup_or_add' 
28 /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.10/lib/phusion_passenger/spawn_manager.rb 256  in `spawn_rails_application' 
29 /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.10/lib/phusion_passenger/abstract_server_collection.rb 80 in `synchronize' 
30 /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.10/lib/phusion_passenger/abstract_server_collection.rb 79 in `synchronize' 
31 /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.10/lib/phusion_passenger/spawn_manager.rb 255  in `spawn_rails_application' 
32 /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.10/lib/phusion_passenger/spawn_manager.rb 154  in `spawn_application' 
33 /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.10/lib/phusion_passenger/spawn_manager.rb 287  in `handle_spawn_application' 
34 /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.10/lib/phusion_passenger/abstract_server.rb  352  in `__send__' 
35 /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.10/lib/phusion_passenger/abstract_server.rb  352  in `main_loop' 
36 /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.10/lib/phusion_passenger/abstract_server.rb  196  in `start_synchronously' 
37 /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.10/bin/passenger-spawn-server 61 
+0

+1 cho một câu hỏi hay và được yêu cầu - rất nhiều ngữ cảnh để chơi cùng. Đáng buồn là tôi không có câu trả lời cho bạn: ( – jaydel

Trả lời

0

Chỉ cần đảm bảo, nhưng tôi không thấy nơi bạn đang đặt cấu hình phiên cho hằng số CACHE của mình:

config.action_controller.session = { 
    :session_key => '_appname', 
    :secret  => 'secret', 
    :cache  => CACHE, 
    :expires  => 10 
} 

Điều này có thể hoạt động đối với qa/dev/testing vì tôi nghĩ rằng theo đường ray mặc định sẽ tìm cửa hàng ghi nhớ trên máy chủ cục bộ. Trong khi trên sản xuất bạn dường như có một ip khác nhau cho các máy chủ memcached.

0

Trong stacktrace có 3 dòng:

/var/www/oro/production/releases/20100528130253/config/environment.rb 29 
/usr/local//lib/ruby/site_ruby/1.8/rubygems/custom_require.rb 31 in `gem_original_require' 
/usr/local//lib/ruby/site_ruby/1.8/rubygems/custom_require.rb 31 in `require' 

Nó có vẻ là một số đá quý bị mất, hãy xem lại environment.rb trên đường dây 29

bạn đã thử ?:

sudo gem install memcached 

Nó đang chạy memcached?

sudo /etc/init.d/memcached start 
+0

Những dòng này không chỉ ra rằng có một viên đá quý bị thiếu Họ chỉ ra rằng lỗi xảy ra khi đá quý memcached đang cố gắng tải - đó là khi memcached nhận ra rằng nó không thể đến máy chủ. –

1

Tôi đã gặp một số vấn đề tương tự với đá quý được ghi nhớ và chuyển sang dali. Phát triển trên dali có vẻ hoạt động hơn và nó nhanh hơn đáng kể. Tôi làm theo các hướng dẫn trên trang github và đã dali lên và chạy trong khoảng mười phút.

2

Đối với tôi, hóa ra là trình nền memcache của tôi không nghe 127.0.0.1 mà là localhost. Sau khi gỡ bỏ tùy chọn -l localhost từ tệp init nó hoạt động hoàn hảo. (Mặc định là nghe trên tất cả các thiết bị.)

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