使用Rails 3.1间歇性地“脚本标题的过早结束”

时间:2011-12-02 15:04:40

标签: ruby-on-rails apache ruby-on-rails-3.1 passenger

所以我已经开始将我们的应用程序从Rails 3.0.9升级到Rails 3.1。

它在开发环境中运行良好。是时候把它放到登台服务器上,这样我们就可以运行一些完整的验收测试了 - 但是哦,不!我们在一半的时间里向我们发送了可怕的“内部服务器错误”页面,似乎是随机的。我们使用的是Ruby 1.9.2(p290)Apache(2)和Passenger(3.0.9)。

当这些事件发生时(即使在最低日志级别),我们的应用程序日志文件中绝对没有写入任何内容。

写入Apache日志的唯一内容如下:

[Fri Dec 02 14:36:15 2011] [error] [client <my ip>] Premature end of script headers: <requested path>, referer: <http://domain.com/referrer>

显然,这对我来说太过于通用了一个错误,要求“修复它!”,但是我可以开始寻找调试内容的一些建议将非常感激。这让我疯了。

更新:此问题未发生且已禁用Sprockets(即config.assets.enabled = false没关系,它仍然会...

2 个答案:

答案 0 :(得分:8)

我找到了导致它的原因。

看来这是Rack中间件的一个问题。链条上的某个宝石破坏了东西(在我的例子中它是Airbrake(以前称为Hoptoad)的宝石,这可以解释为什么在任何地方都没有记录异常)。删除错误的gem或将其更新到最新版本(从git而不是规范的rubygems源安装)为我修复了它。

如果其他人偶然发现了这个问题,我建议你检查一下你的那部分。

答案 1 :(得分:0)

尝试阅读本文,看看它是否能为您带来任何洞察力:http://htmlfixit.com/cgi-tutes/tutorial_Common_Web_dev_error_messages_and_what_they_mean.php#premature