gpt4 book ai didi

ruby-on-rails - 在 ruby​​ 1.9.3 上运行 rails 时出现段错误

转载 作者:数据小太阳 更新时间:2023-10-29 07:08:11 25 4
gpt4 key购买 nike

运行一个相当大的 Rails 应用程序,我们最近着手将其升级到 Rails 3。

我们的堆栈是运行在 apache 之上的 ruby​​-1.9.3p484、rails 3.2.16 和 passenger 4.0.23。

在我们的几台机器上投入一些流量后,我们开始注意到一些非常奇怪的错误。

诸如随机方法未在显然具有它们的对象上定义、实例变量在 AR 关联中为 nil 以及对象只是被随机替换为“false”之类的事情。到处都是奇怪的行为。

检查 apache 的日志给了我们另一点信息,即随着这些错误的出现,它们各自的进程通常也会在应用程序的随机位上崩溃。

有时它只是一个 ruby​​ 节点作为 null 传入,其他时候它只是一些随机字符串溢出,只是随机的东西被破坏了。

这一切都没有在测试期间发生,因此到目前为止,唯一“可靠”的重现方法是将流量扔到各自的机器上,看看它们何时/是否开始表现出这种行为。

经历了所有这些之后,这里列出了到目前为止我们已经排除的事情:

  • 乘客的oob垃圾收集
  • rails 3 本身(显然我们以前也有过这些,但它们之间的距离足够远,不会触发任何警报)
  • 序列化/将内容插入和推出 memcached
  • libxml - 有一些关于版本 2.5.0 导致内存损坏的报告,升级到 2.7.0 并没有真正产生影响
  • 关闭预链接(这可能导致内存损坏,根据 https://www.ruby-forum.com/topic/205897)

将 GC 设置恢复原样似乎缓解了这个问题,但我们在这方面并没有任何定论。似乎收集次数越多,问题的发生率就越低。

关于可能导致此问题的原因或我们可以用来帮助我们查明问题的任何想法?

最佳答案

我在测试运行中也遇到过 1.9.3-p484 segfault at_exit,但我还没有研究它。在我的例子中,它似乎是由测试套件的某些依赖项触发的。

我们在 Rails 3 上的另一个项目也遇到了问题,该项目最终放弃了对 Rails 3 的移植并坚持使用 2.3):

您是否尝试过在 Apache/Passenger 之外运行该应用程序?

关于ruby-on-rails - 在 ruby​​ 1.9.3 上运行 rails 时出现段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21484463/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com