【问题标题】:Stack Level Too Deep in Production Rails App - How to Get Details?生产 Rails 应用程序中的堆栈级别太深 - 如何获取详细信息?
【发布时间】:2011-01-12 09:02:53
【问题描述】:

我正在使用 Spree 在 256MB Slicehost 切片上启动并运行 MySQL、Mongrel 和 Nginx。每次我尝试访问应用程序中的任何 URL 时都会收到此错误:

SystemStackError(堆栈级别太深): 指南针 (0.8.17) lib/compass/app_integration/rails/action_controller.rb:7:in `process' 供应商/插件/haml/rails/./lib/sass/plugin/rack.rb:44:in `call'

(更多测试url请求在这个pastie

在生产模式下我应该使用哪些高级(但免费和开源)调试策略/工具,以便更好地解决这个问题?

每次都略有不同,具体取决于控制器。我已经尝试过increasing my stack size,但这并没有帮助,因为我可能只是找不到一些循环。

问题是,如何在生产过程中获得更详细的准确输出报告?

我正在使用Deprec 和 Capistrano 来执行所有服务器端命令。我正在运行一个 3 的 mongrel 集群。我看到的日志文件是:

当前/日志$ ls 开发日志 testsite.com-error.log 杂种8000.log 杂种8001.log 杂种8002.log 杂种日志 生产日志 testsite.com-access.log

我只是在生产模式下寻找一些高级调试策略/工具,以便更好地解决这个问题。也许一些用于流式传输/调试(或有条件的断点!)本地生产应用程序(真的,一个临时应用程序)的上限任务(人们这样做吗?),或者吐出在代码中执行的每一件事?

谢谢

【问题讨论】:

  • 您检查过 production.log 吗?这就是我首先预计生产中会出现错误的地方......虽然我不一定确定它会为您提供更多数据。
  • 是的,第一个 sn-p 来自 production.log,我暂时在生产模式下设置了“config.log_level = :debug”,但他们没有给我太多信息:/

标签: ruby-on-rails debugging deployment logging


【解决方案1】:

您似乎在控制器的第 7 行启动了一些无休止的递归。检查你是否在方法内部调用了相同的方法。

【讨论】:

    【解决方案2】:

    检查您的动作控制器。第 7 行最有可能发生循环。

    【讨论】:

      【解决方案3】:

      我会检查你的所有 gem 和插件以及你的应用程序可能具有的任何其他依赖项:我猜你缺少某些东西(或某些东西的版本错误)并且它的故障严重到它可以' t 甚至吐出找不到需要的消息。

      【讨论】:

        猜你喜欢
        • 2012-07-24
        • 1970-01-01
        • 2017-08-19
        • 2018-09-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-03
        相关资源
        最近更新 更多