【问题标题】:Exception Errno::EPIPE in Passenger RequestHandler (Broken pipe)乘客 RequestHandler 中的异常 Errno::EPIPE(断管)
【发布时间】:2010-11-08 02:30:54
【问题描述】:

在 Ubuntu hardy slice 上升级到 Rails 2.3.2 和 Passenger 2.2.4 使用 Apache2 的 slicehost

我在我的 Apache error.log 中遇到了与上述相同的错误 系统 /var/logs/apache2/

[ pid=4249 文件=ext/apache2/Hooks.cpp:638 时间=2009-07-04 11:47:32.752]: 内部没有从后端应用程序(进程 4383)接收到数据 45000 毫秒。后端应用程序被冻结,或者您的 TimeOut 45 秒的值太低。请检查您的申请是否 被冻结,或增加 TimeOut 配置的值 指示。 *** 异常 Errno::EPIPE 在乘客请求处理程序(断管) (过程 4391): 来自 /usr/lib/ruby/gems/1.8/gems/passenger-2.2.4/lib/ phusion_passenger/rack/request_handler.rb:93:in `write' 来自 /usr/lib/ruby/gems/1.8/gems/passenger-2.2.4/lib/ phusion_passenger/rack/request_handler.rb:93:in `process_request' 来自 /usr/lib/ruby/gems/1.8/gems/passenger-2.2.4/lib/ phusion_passenger/abstract_request_handler.rb:206:in `main_loop' 来自 /usr/lib/ruby/gems/1.8/gems/passenger-2.2.4/lib/ phusion_passenger/railz/application_spawner.rb:376:in `start_request_handler' 来自 /usr/lib/ruby/gems/1.8/gems/passenger-2.2.4/lib/ phusion_passenger/railz/application_spawner.rb:334:in `handle_spawn_application' 来自 /usr/lib/ruby/gems/1.8/gems/passenger-2.2.4/lib/ phusion_passenger/utils.rb:182:in `safe_fork' 来自 /usr/lib/ruby/gems/1.8/gems/passenger-2.2.4/lib/ phusion_passenger/railz/application_spawner.rb:332:in `handle_spawn_application' 来自 /usr/lib/ruby/gems/1.8/gems/passenger-2.2.4/lib/ phusion_passenger/abstract_server.rb:351:in `__send__' 来自 /usr/lib/ruby/gems/1.8/gems/passenger-2.2.4/lib/ phusion_passenger/abstract_server.rb:351:in `main_loop' 来自 /usr/lib/ruby/gems/1.8/gems/passenger-2.2.4/lib/ phusion_passenger/abstract_server.rb:195:in `start_synchronously' 来自 /usr/lib/ruby/gems/1.8/gems/passenger-2.2.4/lib/ phusion_passenger/abstract_server.rb:162:在“开始”中 来自 /usr/lib/ruby/gems/1.8/gems/passenger-2.2.4/lib/ phusion_passenger/railz/application_spawner.rb:213:in `start' 来自 /usr/lib/ruby/gems/1.8/gems/passenger-2.2.4/lib/ phusion_passenger/spawn_manager.rb:261:in `spawn_rails_application' 来自 /usr/lib/ruby/gems/1.8/gems/passenger-2.2.4/lib/ phusion_passenger/abstract_server_collection.rb:126:in `lookup_or_add' 来自 /usr/lib/ruby/gems/1.8/gems/passenger-2.2.4/lib/ phusion_passenger/spawn_manager.rb:255:in `spawn_rails_application' 来自 /usr/lib/ruby/gems/1.8/gems/passenger-2.2.4/lib/ phusion_passenger/abstract_server_collection.rb:80:在“同步”中 来自 /usr/lib/ruby/gems/1.8/gems/passenger-2.2.4/lib/ phusion_passenger/abstract_server_collection.rb:79:在“同步”中 来自 /usr/lib/ruby/gems/1.8/gems/passenger-2.2.4/lib/ phusion_passenger/spawn_manager.rb:254:in `spawn_rails_application' 来自 /usr/lib/ruby/gems/1.8/gems/passenger-2.2.4/lib/ phusion_passenger/spawn_manager.rb:153:in `spawn_application' 来自 /usr/lib/ruby/gems/1.8/gems/passenger-2.2.4/lib/ phusion_passenger/spawn_manager.rb:286:in `handle_spawn_application' 来自 /usr/lib/ruby/gems/1.8/gems/passenger-2.2.4/lib/ phusion_passenger/abstract_server.rb:351:in `__send__' 来自 /usr/lib/ruby/gems/1.8/gems/passenger-2.2.4/lib/ phusion_passenger/abstract_server.rb:351:in `main_loop' 来自 /usr/lib/ruby/gems/1.8/gems/passenger-2.2.4/lib/ phusion_passenger/abstract_server.rb:195:in `start_synchronously' 来自 /usr/lib/ruby/gems/1.8/gems/passenger-2.2.4/bin/passenger-spawn- 服务器:61 *** 异常 Errno::EPIPE 在乘客请求处理程序(断管) (过程 4383):

还有这些。

pid=4362 文件=ext/apache2/Hooks.cpp:638 时间=2009-07-04 11:55:19.251]: 内部没有从后端应用程序(进程 4383)接收到数据 45000 毫秒。后端应用程序被冻结,或者您的 TimeOut 45 秒的值太低。请检查您的申请是否 被冻结,或增加 TimeOut 配置的值 指示。 [ pid=4298 文件=ext/apache2/Hooks.cpp:638 时间=2009-07-04 11:55:19.255]: 内部没有从后端应用程序(过程 4252)接收到数据 45000 毫秒。后端应用程序被冻结,或者您的 TimeOut 45 秒的值太低。请检查您的申请是否 被冻结,或增加 TimeOut 配置的值 指示。 [2009 年 7 月 4 日星期六 11:55:19] [错误] [客户端 86.96.226.13] 过早结束 脚本头数:41,引用者:http://domain.com/ [ pid=4373 文件=ext/apache2/Hooks.cpp:638 时间=2009-07-04 11:55:19.559]:

它让我在浏览器上发疯,有时它的节目和时间 刷新后,应用程序错误 500 频繁出现。 有什么方向吗??

【问题讨论】:

    标签: ruby-on-rails apache2 passenger


    【解决方案1】:

    您遇到的错误似乎已合并到乘客主服务器中但尚未发布。您可以通过从以下存储库中检出Passenger 来尝试一下:

    http://github.com/FooBarWidget/passenger/tree/master
    

    一旦你检查了它,你想运行:

    ./bin/passenger-install-apache2-module
    

    对于 Apache Passenger,或:

    ./bin/passenger-install-nginx-module
    

    对于 Nginx 乘客。由于已解决此特定问题,因此它应该对您有用。

    【讨论】:

    • 感谢您的回复,耶胡达。我在几个小时前解决了这个问题。 Honlilai 在bit.ly/1axdfO 解决了这个问题,主要与该日志文件权限有关。
    • 我不断收到 Errno::EPIPE,服务器无法使用,因为它需要几秒钟 (5+) 才能获得响应,即使对于 Rails 缓存页面也是如此。所有日志的大小都在增长(没有烫发问题)。这是我的 nginx.conf pastie.org/958895 。在 debian 上使用乘客 2.2.11
    【解决方案2】:

    我也遇到了这个问题,并通过从乘客 2.1.2 升级到乘客 2.2.15 来解决它。

    要明确这不是轨道问题,而是乘客错误。

    错误日志输出:

    [ pid=13571 file=Hooks.cpp:508 time=2010-04-28 17:46:16.878 ]:
      Backend process 22235 did not return a valid HTTP response. It returned no data.
    *** Exception Errno::EPIPE in Passenger RequestHandler (Broken pipe) (process 22235):
        from /usr/lib/ruby/gems/1.8/gems/passenger-2.1.2/lib/phusion_passenger/rack/request_handler.rb:67:in `write'
    

    【讨论】:

      【解决方案3】:

      我更新到了Passenger 2.2.7 版,尽管这个错误仍然存​​在。我发现在我的 Apache 配置中更新 TimeOutKeepAliveTimeout 似乎可以解决问题。 (它们分别从 1 和 2 变为 10 和 20)。希望对某人有所帮助!

      【讨论】:

        【解决方案4】:

        我刚碰到这个。事实证明,这是服务器上 DNS 损坏的症状。我认为它的名称服务器由于飓风桑迪而离线。因此,如果您遇到此问题,请检查您的互联网名称解析是否正常!

        【讨论】:

          猜你喜欢
          • 2017-11-20
          • 2010-09-12
          • 1970-01-01
          • 1970-01-01
          • 2011-05-20
          • 2013-03-30
          • 1970-01-01
          • 2013-01-26
          相关资源
          最近更新 更多