ruby – ApplicationController的副本已从模块树中删除,但仍处于活动状态 - 代码日志

ruby – ApplicationController的副本已从模块树中删除,但仍处于活动状态

每当两个并发的HTTP请求进入我的Rails应用程序时,第二个将始终返回以下错误:

A copy of ApplicationController has been removed from the module tree but is still active!

从那里它给出了一个无益的堆栈跟踪,“我们经历了标准的服务器的东西,在ApplicationController上运行你的第一个before_filter(我检查了,它只是先前先运行的过滤器)”,然后提供以下内容:

/home/matchu/rails/torch/vendor/rails/activesupport/lib/active_support/dependencies.rb:414:in
`load_missing_constant’

/home/matchu/rails/torch/vendor/rails/activesupport/lib/active_support/dependencies.rb:96:in
`const_missing’

我假设的是一个通用的回应,并没有真的说得太多。

Google似乎告诉我,开发Rails引擎的人会遇到这种情况,但我不这样做。我所做的只是将我的Rails应用程序从2.2(2.1?)升级到2.3。

这个错误的一些可能的原因是什么,我如何去追踪发生了什么?我知道这个问题是模糊的,所以其他信息会有帮助吗?

更重要的是:我刚刚在“生产”环境中尝试进行测试运行,并且错误似乎不存在。这只会影响发展,那么,我不需要担心太多?

这是Rails 2.3.3中的一个错误:

> https://rails.lighthouseapp.com/projects/8994/tickets/2948-exception-a-copy-of-actorscontroller-has-been-removed-from-the-module-tree-but-is-still-active

有2-3个稳定的补丁(但不完整?)

> http://github.com/rails/rails/commit/d37ac7958fc88fdbf37a8948102f6b4e45c530b3

您有几个选项来解决问题:

>恢复到Rails 2.3.2,等待2.3.4出来,大概在8月底。 2.3.3有一些坏的问题,所以可能是最好的。
>问题不应该在生产模式下发生,也不会在Thin服务器的开发模式下发生。如果您在Google Engines处于生产模式时遇到此问题,则补丁是您唯一的希望。如果只有在开发模式下,您可以使用Thin而不是Mongrel运行本地服务器。
>如果是Google引擎,您可以移除Google引擎,另一种方式托管您的应用程序。这似乎是很多工作。

最好的运气,这是一个非常糟糕的bug,很多人都在跑。

http://stackoverflow.com/questions/1242559/a-copy-of-applicationcontroller-has-been-removed-from-the-module-tree-but-is-sti

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:ruby – ApplicationController的副本已从模块树中删除,但仍处于活动状态