2010-05-28 1 views
6

Я надеюсь, что кто-то может помочь мне с проблемой, которая, я уверен, является ошибкой пользователя.Rails, Passenger и Memcached: невозможно найти сервер во время инициализации

Детали конфигурации ниже работают во всех моих других средах, включая интеграцию, разработку и qa. Тем не менее, производственные серверы дают следующее сообщение об ошибке:

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

Когда я телнет к Memcached ящик с сервера, имеющего проблему и запустить «статистику», я получаю:

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 

Ниже приведены конфигурации детали и стек.

конфигурации/environment.rb (важные части):

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

конфигурации/среда/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 для хорошего вопроса, и хорошо спросили - много контекста для игры. К сожалению, у меня нет ответа для вас :( – jaydel

ответ

0

Только убедившись, но я не вижу, где вы настраиваете конфигурацию сеанса на константу CACHE:

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

Это может работать для qa/dev/testing, поскольку, по-моему, по умолчанию рельсы ищут хранилище memcached на localhost. В то время как на производстве у вас, похоже, есть другой ip для сервера memcached.

0

В StackTrace есть 3 линии:

/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' 

Это, кажется, какой-то камень отсутствует, пожалуйста, ознакомьтесь с environment.rb по линии 29

вы пытались ?:

sudo gem install memcached 

Работает ли memcached?

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

Эти строки не указывают, что отсутствует драгоценный камень. Они указывают на то, что ошибка возникает, когда memcached gem пытается загрузить - это значит, что memcached понимает, что он не может попасть на сервер. –

1

У меня были некоторые аналогичные проблемы с memcached gem и переключены на dali. Развитие на dali кажется более активным, и оно значительно быстрее. Я следил за указаниями на странице github и заработал около десяти минут.

2

Для меня выяснилось, что мой демон memcache не прослушивал 127.0.0.1, а на localhost. После удаления опции -l localhost из файла инициализации она отлично работала. (По умолчанию нужно прослушивать все устройства.)

Смежные вопросы