Rails 3 / Heroku бесконечные динамо-зомби с простым развертыванием приложения - слишком занят, чтобы открыть консоль - PullRequest
1 голос
/ 11 марта 2011

Тот факт, что результатов в Google так мало, заставляет меня думать, что я делаю что-то не так, потому что кажется, что это будет невероятно распространенная проблема. Однако я не могу найти простое решение, и документы Heroku отстой в целом, и их поддержка занимает> 1 день, чтобы ответить, так что я здесь.

У меня есть приложение, которое я пытаюсь развернуть в первый раз. Это очень легкое приложение, почти приложение оболочки. Он работает на dev, а затем вылетает при развертывании на heroku с бесполезной страницей с ошибкой HTML:

    Application Error
    An error occurred in the application and your page could not be served. 
Please try again in a few moments.    
    If you are the application owner, check your logs for details.

Хорошо, лучше проверь логи. Но журналы Heroku мне ничего не говорят:

Ovid:volatilityApp dlipa$ heroku logs
Ovid:volatilityApp dlipa$ 

Ovid:volatilityApp dlipa$ heroku logs -n 300
Ovid:volatilityApp dlipa$ 

ОК, хм .. лучше войдите в консоль, чтобы увидеть, что происходит.

Ovid:volatilityApp dlipa$ heroku console
Your application is too busy to open a console session.
Console sessions require an open dyno to use for execution.

Хм, это отстой, давайте посмотрим, что работает.

Ovid:volatilityApp dlipa$ heroku ps
Process       State               Command
------------  ------------------  ------------------------------
web.1         crashed for 4m      thin -p $PORT -e $RACK_ENV -R $HER..

Имеет смысл ... но почему динамо-сетка Хероку не проясняет это? Нет информации по теме на сайте Heroku. Поиск в Google приводит к http://neilmiddleton.com/avoiding-zombie-dynos-with-heroku

Ладно, круто, я установил гем ожидания в стойке, добавил инициализатор и нажал на героку. Я наблюдаю, как завершается «установка пакета». Но все та же проблема ...

Ovid:volatilityApp dlipa$ heroku console
Your application is too busy to open a console session.
Console sessions require an open dyno to use for execution.

А, это действительно загадочно и начинает разочаровывать. Может быть, я должен просто купить больше ресурсов у Heroku ... это должно решить проблему, потому что тогда у меня будет больше динамов, чтобы открыть консоль ..

Ovid:volatilityApp dlipa$ heroku dynos
volatility is running 1 dyno

Ovid:volatilityApp dlipa$ heroku dynos 2
volatility now running 2 dynos

Но подождите, Heroku загружает столько веб-процессов, сколько у меня есть динамометры, и они все зомби! И я не могу попасть в консоль, независимо от того, насколько высоко я масштабируюсь.

Ovid:volatilityApp dlipa$ heroku dynos 10
volatility now running 10 dynos
Ovid:volatilityApp dlipa$ heroku ps
heroku consoleProcess       State               Command
------------  ------------------  ------------------------------
web.1         crashed for 2m      thin -p $PORT -e $RACK_ENV -R $HER..
web.2         crashed for 1m      thin -p $PORT -e $RACK_ENV -R $HER..
web.3         crashed for 37s     thin -p $PORT -e $RACK_ENV -R $HER..
web.4         crashed for 36s     thin -p $PORT -e $RACK_ENV -R $HER..
web.5         crashed for 35s     thin -p $PORT -e $RACK_ENV -R $HER..
web.6         crashed for 35s     thin -p $PORT -e $RACK_ENV -R $HER..
web.7         crashed for 37s     thin -p $PORT -e $RACK_ENV -R $HER..
web.8         crashed for 33s     thin -p $PORT -e $RACK_ENV -R $HER..
web.9         crashed for 38s     thin -p $PORT -e $RACK_ENV -R $HER..
web.10        crashed for 34s     thin -p $PORT -e $RACK_ENV -R $HER..
Ovid:volatilityApp dlipa$ heroku console
Your application is too busy to open a console session.
Console sessions require an open dyno to use for execution.
Ovid:volatilityApp dlipa$ 

Это я или плохо спроектирован? Почему нет информации по этому вопросу? Я что-то делаю не так?

Спасибо за вашу помощь!

Приложение работает с 3.0.5 рельсами, 1.9.2 ruby, postgresql.

- ОБНОВЛЕНИЕ ОТВЕТА НА BANTIC -

Ovid:volatilityApp dlipa$ heroku stack
  aspen-mri-1.8.6
  bamboo-ree-1.8.7
* bamboo-mri-1.9.2

Ovid:volatilityApp dlipa$ heroku ps
Process       State               Command
------------  ------------------  ------------------------------
web.1         crashed for 17s     thin -p $PORT -e $RACK_ENV -R $HER..
web.2         crashed for 1m      thin -p $PORT -e $RACK_ENV -R $HER..
web.3         crashed for 1m      thin -p $PORT -e $RACK_ENV -R $HER..

RubyGems Environment:
  - RUBYGEMS VERSION: 1.6.1
  - RUBY VERSION: 1.9.2 (2011-02-18 patchlevel 180) [x86_64-darwin10.6.0]
  - INSTALLATION DIRECTORY: /Users/dlipa/.rvm/gems/ruby-1.9.2-p180
  - RUBY EXECUTABLE: /Users/dlipa/.rvm/rubies/ruby-1.9.2-p180/bin/ruby
  - EXECUTABLE DIRECTORY: /Users/dlipa/.rvm/gems/ruby-1.9.2-p180/bin
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86_64-darwin-10
  - GEM PATHS:
     - /Users/dlipa/.rvm/gems/ruby-1.9.2-p180
     - /Users/dlipa/.rvm/gems/ruby-1.9.2-p180@global
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :benchmark => false
     - :backtrace => false
     - :bulk_threshold => 1000
     - :sources => ["http://rubygems.org/", "http://gems.github.com"]
  - REMOTE SOURCES:
     - http://rubygems.org/
     - http://gems.github.com

Ссылка на репо:

https://github.com/lightserve/volatilityApp

Ответы [ 2 ]

0 голосов
/ 07 июля 2011

Я пришел к этой теме, потому что у меня была такая же проблема.В моем случае проблема заключалась в ошибке в файле "rout.rb".

0 голосов
/ 11 марта 2011

Вы используете тот же стек на герою, что и локально?Heroku новые приложения defaulto mri ruby ​​187, afaik.Вы можете попробовать перенести свой стек герока на 1.9.2.Вы можете сделать это с помощью:

heroku stack:migrate bamboo-mri-1.9.2

В следующий раз, когда вы перейдете в git-репозиторий heroku, стек будет перенесен.

Можете ли вы дать больше информации о том, что делает ваше приложение?Это порождает новые процессы или использует потоки?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...