【问题标题】:heroku run console returns 'Error connecting to process'heroku 运行控制台返回“连接到进程时出错”
【发布时间】:2011-09-25 16:17:40
【问题描述】:

我已将 Rails 3.1 应用程序部署到 Heroku Cedar 堆栈,并尝试执行:

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 stack 上的经验。

我的其他错误显然与未执行的数据库迁移有关。在我可以运行 rake 任务之前,我一直在前进。

【问题讨论】:

  • 有趣..我也有这个问题。

标签: ruby-on-rails heroku ruby-on-rails-3.1 rails-3.1 cedar


【解决方案1】:

我遇到了同样的问题,虽然我没有解决问题,但我找到了解决方法。

而不是使用:

heroku 运行 rake db:migrate

你可以使用:

heroku 运行:分离 rake db:迁移

这会在后台运行命令,将输出写入日志。完成后,您可以查看结果日志。

不理想,但是当您的网络不足时,它会让您摆脱困境:)

【讨论】:

  • 太棒了!不知道有没有办法在这样运行rails c之后执行命令?
  • heroku run:detached rake db:migrate 为我工作!干杯谢谢队友.. :)
【解决方案2】:

此问题通常是由连接或防火墙问题引起的。您可以通过运行以下命令来测试与heroku runheroku console 服务器的连接:

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

(如果您能够成功连接,请按Ctrl+],然后键入quit 退出telnet 会话。)

一些用户在他们的防火墙中将这些主机名+端口组合列入白名单后成功了。

Heroku 在一次性进程的故障排除部分提到了这一点:http://devcenter.heroku.com/articles/oneoff-admin-ps

需要很长时间才能启动的应用程序也会加剧连接问题。如果服务器响应不够快,您的本地连接将在应用启动之前超时。

【讨论】:

  • ipfw 列表返回 --> 65535 允许 ip 从任意到任意
  • 已解决 - 用 3G 系绳测试并收到响应,似乎不是防火墙;可能是代理,也可能是 ISP。
  • Heroku 使用公司 ISP 等通常禁止的端口时运气不佳。linklogger.com/TCP5000.htm
【解决方案3】:

这似乎是出于不同的原因。对我来说,原来是我安装了旧版本的 Heroku Toolbelt。它在自我更新版本之前,我还安装了旧版本的 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。 运行下面的命令询问我是否也想删除可执行文件。正确答案是肯定的!如果您需要特定应用程序的 gem,您可以随时捆绑/安装。

$ gem uninstall heroku --all

如果你使用的是rbenv,你可能需要rehash:

$ rbenv rehash

清除旧的 gem 后,下载当前的 heroku 工具带并安装它。重新启动终端后一切都应该工作。

编辑:

我必须确保我的 rbenv 路径没有设置在 heroku cli 路径的前面。否则,旧 heroku gem 的任何捆绑/安装都会再次劫持 heroku 命令。我在 ~/.profile 文件的末尾添加了导出路径行,以便将其附加到任何 rbenv 路径之前。

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

重新加载终端显示这通过运行和路径不在 /usr/local/heroku 中有效

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

【讨论】:

  • 是的,更新 heroku CLI 是我的解决方案。虽然 heroku 文档说 cli 会自动更新,但我不得不运行 heroku update 来强制更新。
【解决方案4】:

尝试安装最新版本的 heroku gem,然后再次运行这些“heroku run”命令。

【讨论】:

    【解决方案5】:

    这看起来像是 Heroku 的问题 - 我在 Cedar 上运行的应用程序连接到控制台时遇到错误。您输入的命令肯定没有做错任何事情。

    【讨论】:

      【解决方案6】:

      已解决 - 用 3G 系绳测试并收到响应,似乎不是防火墙;可能是代理,也可能是 ISP。

      【讨论】:

        【解决方案7】:

        对我来说,升级我的 heroku toolbelt 和 cli 很有效。我使用brew,所以它看起来像这样:

        brew upgrade heroku-toolbelt
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-08-23
          • 1970-01-01
          • 2016-04-15
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多