тонкий веб-сервер генерирует ошибку неинициализированную константу ActiveSupport :: Зависимости при обслуживании запроса - PullRequest
0 голосов
/ 18 января 2012

Я немного застрял на этом и прочитал Тонкий форум, погуглил все, что могу придумать, попытался выяснить, не использую ли я неправильные версии гемов, поэтому я надеюсь, что кто-нибудь подскажет, как я могу отлаживатьЭта проблема.

Я запускаю Thin с помощью следующей командной строки:

 thin start -C /root/myapp/config/thin.yml -e production -d --adapter rack 

Я запускаю nginx с веб-сервером Thin на Amazon EC2 с Rails 3.0.3 и Ruby 1.9.2-p290.Nginx и Thin работают нормально, но когда HTTP-запрос отправляется Thin из nginx, Thin выдает следующую ошибку и Nginx сообщает «502 Bad Gateway»:

 !! Unexpected error while processing request: uninitialized constant      ActiveSupport::Dependencies
 uninitialized constant ActiveSupport::Dependencies
/usr/local/rvm/gems/ruby-1.9.2-p290/gems/actionpack-3.0.3/lib/action_dispatch/middleware/stack.rb:9:in `initialize'
/usr/local/rvm/gems/ruby-1.9.2-p290/gems/actionpack-3.0.3/lib/action_dispatch/middleware/stack.rb:67:in `new'
/usr/local/rvm/gems/ruby-1.9.2-p290/gems/actionpack-3.0.3/lib/action_dispatch/middleware/stack.rb:67:in `use'
/usr/local/rvm/gems/ruby-1.9.2-p290/gems/railties-3.0.3/lib/rails/application.rb:190:in `block in default_middleware_stack'
/usr/local/rvm/gems/ruby-1.9.2-p290/gems/railties-3.0.3/lib/rails/application.rb:189:in `tap'
/usr/local/rvm/gems/ruby-1.9.2-p290/gems/railties-3.0.3/lib/rails/application.rb:189:in `default_middleware_stack'
/usr/local/rvm/gems/ruby-1.9.2-p290/gems/railties-3.0.3/lib/rails/application.rb:161:in `app'
/usr/local/rvm/gems/ruby-1.9.2-p290/gems/railties-3.0.3/lib/rails/application.rb:168:in `call'
/usr/local/rvm/gems/ruby-1.9.2-p290/gems/railties-3.0.3/lib/rails/application.rb:77:in `method_missing'
/usr/local/rvm/gems/ruby-1.9.2-p290/gems/thin-1.2.7/lib/thin/connection.rb:76:in `block in pre_process'
/usr/local/rvm/gems/ruby-1.9.2-p290/gems/thin-1.2.7/lib/thin/connection.rb:74:in `catch'
/usr/local/rvm/gems/ruby-1.9.2-p290/gems/thin-1.2.7/lib/thin/connection.rb:74:in `pre_process'
/usr/local/rvm/gems/ruby-1.9.2-p290/gems/thin-1.2.7/lib/thin/connection.rb:57:in `process'
/usr/local/rvm/gems/ruby-1.9.2-p290/gems/thin-1.2.7/lib/thin/connection.rb:42:in `receive_data'
/usr/local/rvm/gems/ruby-1.9.2-p290/gems/eventmachine-0.12.10/lib/eventmachine.rb:256:in `run_machine'
/usr/local/rvm/gems/ruby-1.9.2-p290/gems/eventmachine-0.12.10/lib/eventmachine.rb:256:in `run'
/usr/local/rvm/gems/ruby-1.9.2-p290/gems/thin-1.2.7/lib/thin/backends/base.rb:57:in `start'
/usr/local/rvm/gems/ruby-1.9.2-p290/gems/thin-1.2.7/lib/thin/server.rb:156:in `start'
/usr/local/rvm/gems/ruby-1.9.2-p290/gems/thin-1.2.7/lib/thin/controllers/controller.rb:80:in `start'
/usr/local/rvm/gems/ruby-1.9.2-p290/gems/thin-1.2.7/lib/thin/runner.rb:177:in `run_command'
/usr/local/rvm/gems/ruby-1.9.2-p290/gems/thin-1.2.7/lib/thin/runner.rb:143:in `run!'
/usr/local/rvm/gems/ruby-1.9.2-p290/gems/thin-1.2.7/bin/thin:6:in `<top (required)>'
/usr/local/rvm/gems/ruby-1.9.2-p290/bin/thin:19:in `load'
/usr/local/rvm/gems/ruby-1.9.2-p290/bin/thin:19:in `<main>'

Вот мой список драгоценных камней:

* МЕСТНЫЕ ДРАГОЦЕННЫЕ КАМНИ *

 abstract (1.0.0)
 actionmailer (3.0.3)
 actionpack (3.0.3)
 activemodel (3.0.3)
 activerecord (3.0.3)
 activeresource (3.0.3)
 activesupport (3.0.3)
 arel (2.0.10)
 builder (2.1.2)
 bundler (1.0.10 ruby)
 cgi_multipart_eof_fix (2.5.0)
 daemons (1.0.10)
 erubis (2.6.6)
 eventmachine (0.12.10)
 fastthread (1.0.7)
 gem_plugin (0.2.3)
 i18n (0.6.0)
 mail (2.2.19)
 mime-types (1.17.2)
 mongrel (1.2.0.pre2)
 multi_json (1.0.4)
 mysql2 (0.2.18, 0.2.17)
 polyglot (0.3.3)
 rack (1.2.5, 1.2.4)
 rack-cache (1.0)
 rack-mount (0.6.14)
 rack-test (0.5.7)
 rails (3.0.3)
 railties (3.0.3)
 rake (0.9.2.2)
 redis (2.2.2)
 redis-namespace (1.0.3)
 resque (1.19.0)
 resque-access_worker_from_job (0.3.1)
 rmagick (2.13.1)
 sinatra (1.2.8)
 thin (1.2.7)
 thor (0.14.6)
 tilt (1.3.3)
 treetop (1.4.10)
 tzinfo (0.3.31)
 vegas (0.1.8)
 xmpp4r (0.5)

Вот мой файл config.ru:

#!/usr/bin/env ruby
require 'thin'
require 'rack'

require ::File.expand_path('config/environment', File.dirname(__FILE__) )
run Myapp::Application

Я также пытался использовать thin 1.3.1без удачиЯ пробовал eventmachine-1.0.0.beta.2, но Gemfile продолжает хотеть использовать 0.12.10, хотя я удалил Gemfile.lock перед запуском установки пакета.

Я думаю, что ошибка, связанная с ActiveSupport:: Зависимости означают, что я где-то использую неправильные библиотеки, но я не знаю, как выяснить, какие библиотеки являются неправильными.

Кто-нибудь знает, что является причиной этой проблемы, или есть предложения о том, как отлаживатьэто?

Ответы [ 2 ]

0 голосов
/ 20 июня 2016

Я сталкиваюсь с этой ошибкой, используя версию thin для сопровождающего пакета, когда мне нужно попытаться использовать версию thin в комплекте с моим приложением:

$  bundle exec thin start -C /root/myapp/config/thin.yml

К сожалению, я пытаюсь добиться того, чтобы что-то произошло в докер-контейнере, поэтому RVM затрудняет мне запуск этой команды из entrypoint.sh. Возможно, вы захотите полностью удалить версию сопровождающих пакетов apt-get remove thin и переустановить thin с bundle install снова.

0 голосов
/ 20 января 2012

Эта ссылка установила меня на правильный путь.После добавления require 'active_support / dependencies' я затем добавил require 'action_controller' в config.ru и смог получить доступ к index.html через мой URI.Так что мой config.ru выглядит так:

 #!/usr/bin/env ruby
 require 'thin'
 require 'rack'
 require 'active_support/dependencies'
 require 'action_controller'

 require ::File.expand_path('config/environment', File.dirname(__FILE__) )
 run Myapp::Application

Я понятия не имею, зачем нужны эти требования, но, похоже, сработает.Ссылка говорит, что причина в том, что вы используете бета-версию Rails 3.Не уверен, что я использую такие драгоценные камни.

...