web-dev-qa-db-ja.com

heroku runco​​nsoleが「プロセスへの接続エラー」を返します

Rails 3.1アプリをHerokuCedarスタックにデプロイし、以下を実行しようとしています:

heroku run rake db:migrate

それは戻ります:

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

また、コンソールを起動するだけです。

heroku run console

実行コマンドはすべて同じエラーを返します。

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のドキュメントとグーグルの両方が私を先に進める道に導いてくれませんでした。

何か案は?これはBambooスタックでの私の経験ではありません。

私の他のエラーは、明らかにDB移行が実行されていないことに関連しています。レーキタスクを実行できるようになるまで、私は前進し続けます。

30
jdcravens

同じ問題が発生し、問題は解決しませんでしたが、回避策を見つけました。

使用する代わりに:

heroku run rake db:migrate

次を使用できます。

heroku run:detached rake db:migrate

これにより、コマンドがバックグラウンドで実行され、出力がログに書き込まれます。終了すると、結果のログを表示できます。

理想的ではありませんが、ネットワークが不十分な場合は、穴から抜け出すことができます:)

81
Geoff

この問題は通常、接続またはファイアウォールの問題が原因で発生します。次のコマンドを実行して、heroku runサーバーとheroku consoleサーバーへの接続をテストできます。

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

(正常に接続できる場合は、を押します Ctrl+] 次に、quitと入力して、telnetセッションを終了します。)

一部のユーザーは、ファイアウォールでこれらのホスト名とポートの組み合わせをホワイトリストに登録した後、成功しています。

Herokuは、1回限りのプロセスのトラブルシューティングセクションでこれについて言及しています: http://devcenter.heroku.com/articles/oneoff-admin-ps

起動に時間がかかるアプリケーションも、接続の問題を悪化させる可能性があります。サーバーが十分な速さで応答しない場合、アプリが起動する前にローカル接続がタイムアウトします。

17
kch

これはさまざまな理由で発生するようです。私にとっては、古いバージョンのHerokuToolbeltがインストールされていることがわかりました。これは自己更新バージョンより前であり、古いバージョンのherokugemもインストールしていました。 herokuツールベルトを更新する前に、これらを削除する必要がありました。

このページは役に立ちました。最初にお読みください: https://devcenter.heroku.com/articles/heroku-command#staying-up-to-date

次のように、使用しているherokuツールベルトのバージョン(ある場合)を確認します。

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

バージョン2.32.0より古い場合は、更新する必要があります。応答に「heroku-toolbelt」が表示されない場合は、インストールする必要があります。

最初に、古いherokugemをインストール解除してください。 以下のコマンドを実行すると、実行可能ファイルも削除するかどうか尋ねられました。正解はYESです!特定のアプリにgemが必要な場合は、後でいつでもバンドル/インストールできます。

$ gem uninstall heroku --all

Rbenvを使用している場合は、以下を再ハッシュする必要があります。

$ rbenv rehash

古いgemをクリーンアップしたら、現在のherokuツールベルトをダウンロードしてインストールします。ターミナルを再起動すると、すべてが機能するはずです。

編集:

Rbenvパスがherokucliパスの前に設定されていないことを確認する必要がありました。そうしないと、古いheroku gemのバンドル/インストールによって、herokuコマンドが再びハイジャックされます。 〜/ .profileファイルの最後にエクスポートパス行を追加して、rbenvパスの前に追加されるようにしました。

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

ターミナルをリロードすると、これが実行され、パスが/ usr/local/herokuにないことがわかりました。

$ which heroku
/usr/local/heroku/bin/heroku
4
JC Avena

最新バージョンのherokugemをインストールしてから、これらの「herokurun」コマンドを再度実行してみてください。

1
stolt45

私にとっては、herokuツールベルトとcliのアップグレードが機能しました。 brewを使用しているので、次のようになります。

brew upgrade heroku-toolbelt
0
skensell

Herokuの問題のようです-Cedarで実行されている私のアプリケーションでコンソールに接続するときにエラーが発生します。あなたは確かにあなたがタイプしているコマンドで何も悪いことをしていません。

0
John Beynon

解決済み-3Gテザーでテストされ、応答を受信しましたが、ファイアウォールではないようです。多分プロキシ、またはISP。

0
jdcravens