在Ruby 1.9.3上运行导轨时的细分故障



运行一个相当大的铁路应用程序,我们最近四处升级到Rails3。

我们的堆栈是Ruby-1.9.3p484,Rails 3.2.16和乘客4.0.23在Apache的顶部运行。

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

诸如未在显然具有它们的对象上定义的随机方法之类的东西,实例变量在ar的内部关联中为nil,并且对象只是被" false"随机替换。

围绕着奇怪的行为。

检查Apache的日志为我们提供了另一个信息,即,随着这些错误的到来,这些错误常常在应用程序的随机位上也将其各自的流程都重复。

有时候,这只是一个红宝石节点,以null为单位,而其他时候,这只是一些随机的字符串溢出,只是随机的东西被弄乱了。

这一切都没有发生在测试过程中,因此迄今为止唯一的"可靠"重现方式就是向各自的机器投掷流量,看看何时/是否开始表现出这种行为。

经历了所有这些,以下是我们现在排除的事情的列表:

  • 乘客的OOB垃圾收集
  • rails 3本身(显然我们也以前也得到了这些
  • 序列化/将事物进出,
  • 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/乘客之外运行该应用?

相关内容

  • 没有找到相关文章

最新更新