консоль Heroku run возвращает "ошибка подключения к процессу"

я развернул приложение rails 3.1 в Heroku Cedar stack и пытаюсь выполнить:

heroku run rake db:migrate

возвращает:

Running console attached to terminal... 
Error connecting to process

Я также пытаюсь просто запустить консоль:

heroku run console

любая команда run возвращает ту же ошибку.

Running console attached to terminal... 
Error connecting to process

глядя на журналы, я получаю код ошибки:

2011-09-25T16:04:52+00:00 app[run.2]: Error R13 (Attach error) -> Failed to attach to process

Когда Я heroku ps посмотреть текущие процессы, я вижу, что мои попытки работает:

Process       State               Command
------------  ------------------  ------------------------------
run.2         complete for 26m    bundle exec rails console
run.3         up for 27s          bundle exec rails console
run.4         up for 3s           bundle exec rake db:create
web.1         up for 46s          bundle exec thin start -p $PORT -e..

но снова каждый из них поднимаем исключения:

2011-09-25T16:31:47+00:00 app[run.3]: Error R13 (Attach error) -> Failed to attach to process
2011-09-25T16:31:47+00:00 heroku[run.3]: Process exited
2011-09-25T16:31:48+00:00 heroku[run.3]: State changed from up to complete
2011-09-25T16:32:11+00:00 app[run.4]: Error R13 (Attach error) -> Failed to attach to process
2011-09-25T16:32:11+00:00 heroku[run.4]: Process exited
2011-09-25T16:32:12+00:00 heroku[run.4]: State changed from up to complete

администратор сервера не моя чашка чая, следовательно, решение использовать Heroku.

оба Heroku docs и Googling не привели меня по пути, который дает мне много, чтобы идти дальше.

какие идеи? Это не было моим опытом в Bamboo stack.

мои другие ошибки, очевидно, связаны с миграциями БД, которые не выполняются. Пока я не справлюсь с заданиями рейка, я буду двигаться вперед.

7 ответов


У меня была та же проблема, и хотя я не решил проблему, я нашел обходной путь.

вместо:

heroku run rake db: миграция

вы можете использовать:

heroku run: отсоединенные грабли db: migrate

это запускает команду в фоновом режиме, записывая выходные данные в журнал. Когда он будет завершен, вы можете просмотреть журнал для результата.

не идеал, но когда вы находитесь на неадекватная сеть, она вытащит вас из ямы:)


эта проблема обычно вызвана проблемой подключения или брандмауэра. Вы можете проверить свое соединение с heroku run и heroku console сервера, выполнив следующие команды:

$ telnet rendezvous.heroku.com 5000 
$ telnet s1.runtime.heroku.com 5000

(если вы успешно можете подключиться, нажмите сочетания клавиш Ctrl+] и затем введите quit для выхода из сеанса telnet.)

некоторые пользователи имеют успех после белого списка этих комбинаций имя хоста + порт в своем брандмауэре.

в Heroku упоминает об этом в раздел устранения неполадок одноразовых процессов:http://devcenter.heroku.com/articles/oneoff-admin-ps

приложение, которое занимает много времени для загрузки также может спровоцировать проблемы с подключением. Если сервер не отвечает достаточно быстро, ваше локальное соединение будет таймаутом до загрузки приложения.


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

эта страница оказалась полезной. Читай сначала: https://devcenter.heroku.com/articles/heroku-command#staying-up-to-date

узнайте, что heroku toolbelt версия (если есть) вы используете, как это:

$ heroku version
heroku-toolbelt/2.xx.x 

если он старше версии 2.32.0, то он должен быть обновлен. Если вы не видите "heroku-toolbelt" в ответе, то вам нужно установить его.

убедитесь, что вы сначала удалите все старые драгоценные камни heroku. запуск команды ниже спросил меня, хочу ли я удалить исполняемые файлы. Правильный ответ-да! вы всегда можете комплект/установить позже, если вам нужен камень для конкретного приложения.

$ gem uninstall heroku --all

если вы используете rbenv, вам может потребоваться перефразировать:

$ rbenv rehash

как только вы очистите старые драгоценные камни, загрузите текущий пояс инструментов heroku и установите его. Все должно работать после перезагрузки терминала.

EDIT:

Я должен был убедиться, что мой путь rbenv не установлен перед путем heroku cli. В противном случае любой комплект/установка старого драгоценного камня heroku снова захватит команду heroku. Я добавил экспорт линия пути в конце моего ~/.файл профиля, поэтому он будет добавлен перед любым путем rbenv.

$ vi ~/.profile
export PATH=/usr/local/heroku/bin:$PATH

перезагрузка терминала показала, что это работает, запустив и путь не находится в / usr/local / heroku

$ which heroku
/usr/local/heroku/bin/heroku

попробуйте установить последнюю версию Heroku gem, а затем снова запустить эти команды "heroku run".


Это похоже на проблему с Heroku - я получаю ошибки при подключении к консоли в приложениях, запущенных на Cedar. Вы, конечно, не делаете ничего плохого с командами, которые вы вводите.


Solved-tested с 3G tether и полученными ответами, не похоже на брандмауэр; возможно, прокси-сервер или ISP.


для меня обновление моего пояса инструментов heroku и cli работало. Я использую brew так это выглядит так:

brew upgrade heroku-toolbelt