2010-05-28 8 views
6

Mam nadzieję, że ktoś może mi pomóc z problemem, który, jestem pewien, jest błędem użytkownika.Szyny, pasażer i pamięć podręczna: Nie można znaleźć serwera podczas inicjowania.

Poniższe szczegóły konfiguracji działają we wszystkich innych moich środowiskach, w tym w integracji, programowaniu i qa. Jednak serwery produkcyjne dają następujący błąd:

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

Kiedy telnet do memcached pudełku z serwera mającego problem i run „statystyki” otrzymuję:

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 

Poniżej konfiguracja szczegóły i stacktrace.

config/environment.rb (istotne części):

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

config/środowiska/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 za dobre pytanie i dobrze zadane - dużo kontekstu do zabawy. Niestety nie mam dla ciebie odpowiedzi :( – jaydel

Odpowiedz

0

Wystarczy upewnić się, ale nie widzę, gdzie ustawiasz konfigurację sesji ze stałą CACHE:

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

Może to działać dla qa/dev/testing, ponieważ domyślnie rails szuka memcached store na localhost. Podczas produkcji wydaje się, że masz inne IP dla serwera memcached.

0

W stacktrace tam 3 linie:

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

Wydaje się, że niektóre gem brakuje, należy zapoznać się z environment.rb na linii 29

pan spróbować ?:

sudo gem install memcached 

To memcached działa?

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

Te linie nie wskazują, że brakuje jakiegoś klejnotu. Wskazują, że błąd występuje, gdy klejnot memcached próbuje załadować - to jest, gdy memcached zdaje sobie sprawę, że nie może dostać się do serwera. –

1

Miałem podobne problemy z memcached klejnotem i zmieniono na dali. Rozwój na dali wydaje się bardziej aktywny i jest znacznie szybszy. Postępowałem zgodnie ze wskazówkami na stronie githuba i trwałem przez około dziesięć minut.

2

Okazało się, że mój demon memcache nie słuchał 127.0.0.1, ale do localhosta. Po usunięciu opcji -l localhost z pliku init działało idealnie. (Domyślnie jest to słuchanie na wszystkich urządzeniach.)

Powiązane problemy