unicorn/rails 服务器在生产中出现错误,但不会写入日志或 stderr

unicorn/rails 服务器在生产中出现错误,但不会写入日志或 stderr

我的堆栈跟踪在哪里?

我有一个小型 Rails 3.2 应用程序,我正尝试让它在 unicorn 代理下运行,该代理连接到 Linode 服务器上的 Apache vhost。在本地开发模式下,以及在 linode 上,它按预期运行。但是,一旦我打开开关-E production,浏览器中就会出现错误“很抱歉,但出了点问题。”

因此,我当然会尝试查看日志以查看问题所在。但应用程序log目录中没有任何内容。也没有任何有用的信息/var/log/apache2

因此,我尝试将情况简化到其本质,但直接运行和访问unicorn_rails也会出现同样的问题。唯一的输出应该是 stdout/stderr,那里也没有显示任何内容。

$ bundle exec unicorn -E production -p 9092   
I, [2012-03-10T15:02:50.208750 #2891]  INFO -- : listening on addr=0.0.0.0:9092 fd=7
I, [2012-03-10T15:02:50.211113 #2891]  INFO -- : worker=0 spawning...
I, [2012-03-10T15:02:50.224912 #2891]  INFO -- : master process ready
I, [2012-03-10T15:02:50.225570 #2908]  INFO -- : worker=0 spawned pid=2908
I, [2012-03-10T15:02:50.225900 #2908]  INFO -- : Refreshing Gem list
I, [2012-03-10T15:03:00.725142 #2908]  INFO -- : worker=0 ready
cache: [GET /] miss
cache: [GET /favicon.ico] miss

正如我所说,如果我切换到开发模式,它就可以正常工作。无论我以 root 还是普通用户身份运行上述程序都没有关系。

我正在使用 RVM,所以这可能是一个问题,但 unicorn 确实在开发中运行 - 并且所有必需的 gem 都已安装。

使用-dunicorn 的调试标志,我在生产或开发模式下收到大量与某些 gem 相关的警告和异常。我在调试输出中没有看到任何有趣的东西,但如果有帮助的话,我可以发布它。

答案1

找到了——RAILS 中的 BUG :P

https://github.com/rails/rails/issues/4277

已通过更新至 3.2.2 修复

相关内容