在ruby 1.9.3上运行rails时出现分段错误

 手机用户2502873837 发布于 2023-01-30 10:05

运行一个相当大的rails应用程序,我们最近开始将它升级到rails 3.

我们的堆栈是ruby-1.9.3p484,rails 3.2.16和乘客4.0.23在apache之上运行.

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

诸如随机方法没有在明显具有它们的对象上定义,实例变量在AR关联内是nil,以及对象被随机替换为'false'之类的东西.只是所有奇怪的行为.

检查apache的日志给了我们另一些信息,即随着这些错误的进入,通常情况下,他们各自的流程也会在应用程序的随机位上流行.

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

这些都不是在测试过程中发生的,所以迄今为止唯一的"可靠"再现方法就是在相应的机器上投放流量,看看他们何时/是否开始表现出这种行为.

完成所有这些之后,这里列出了我们迄今为止已经排除的事项:

乘客的垃圾收集

rails 3本身(显然我们之前也已经得到过这些,但它们相距甚远,不会引发任何警报)

序列化/推送进出memcached的东西

libxml - 有一些关于版本2.5.0导致内存损坏的报告,升级到2.7.0并没有真正有所作为

关闭预链接(这可能会导致内存损坏,根据https://www.ruby-forum.com/topic/205897)

将GC设置恢复到库存似乎已经缓解了这个问题,但我们在这方面确实没有任何结论.看起来似乎更多的集合会导致问题的发生率降低.

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

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有