我们使用Ruby v.2.0.0-p247Rails v4.0.1应用程序上有一个pg gem v0.17.0

使用Mac OS X Mavericks v10.9安装了PostgreSQL Server v9.2.4的应用程序在HomeBrew下可以顺利运行,但是在使用Ubuntu v13.04PostgreSQL Server 9.1下,该应用程序会引发以下异常:
PG::UnableToSend: server closed the connection unexpectedlyThis probably means the server terminated abnormally before or while processing the request.
事务查询(表单提交)后发生异常。

我用database.yml尝试了以下内容:

  • 添加reconnect: true
  • 添加port: 5432
  • 添加socket: /var/run/postgresq/SOCKET_FILE

  • 并尝试在Ubuntu下使用PostgreSQL配置进行以下操作:
  • 禁用SSL。
  • 更改TCP keepalives参数以提高超时。
  • 将日志级别更改为DEBUG并在PostgreSQL服务器上搜索可能的错误。

  • 还尝试了:
  • 降级为pg gem v0.16.0。
  • 将所有Ubuntu 13.04软件包更新为最新版本。

  • 有什么可能是错的吗?

    更新:

    2013年12月3日:一些建议检查防火墙设置。 ufw status表示ufw已禁用。
    2013年12月8日:尝试使用Vanilla Rails应用程序并对当前应用程序进行了大量修改后,问题出在rails4/activerecord-session_store gem。 lib/active_record/session_store/session.rb中的第47行是元凶。

    最佳答案

    当您使用旧版本的launchy时,这基本上会发生,并且根据Launchy的git repo上的此issue引用@infertux



    您可以检查Gemfile.lock来查看是否正在使用2.4.1以下版本的launchy,并且我怀疑您在开发环境中使用的letter_opener Gem(取决于launchy),因此将letter_opener更新为1.2.0会将launchy更新为2.4.0以上的版本主要是2.4.2,已修复此问题

    所有功劳归@infertux

    10-07 15:09