使用带有Mongoid的Rails 5应用程序进行分段错误

时间:2017-03-01 03:03:42

标签: ruby-on-rails ruby mongodb segmentation-fault

我遇到了一个我以前从未遇到过的Rails的奇怪问题。我使用Mongoid将Rails 5应用程序放到Google Compute Engine上以使用该平台,我正在进行一些负载测试。我使用了siege和我制作的自定义脚本发送请求,等待响应,然后发送另一个请求,永远循环。我的脚本可在此处找到:https://gist.github.com/welkie/bf3efa62bab2194d4b679c1f69957d2a

围攻测试在50次交易中始终失败1-4次,我的脚本在运行约20-100个请求响应周期后返回500响应。 Rails的调试日志有一个分段错误。这里有大量错误消息:https://gist.github.com/welkie/e200760852917c68cc9de650362618d3

我认为这是一个内存或CPU问题所以我尝试了一个高CPU GCE实例,但问题仍然存在。然后我认为这是一个GCP问题所以我把同一个应用程序扔到了AWS上,我得到了完全相同的行为。

以前有人遇到过这个吗?

更新

我已经在我的本地计算机上执行了测试,并且我没有在本地遇到此问题。我也在本地使用Docker来模仿我的设置。我只在AWS和GCP上遇到过它。

更新

我现在还在GCP上进行了另一次测试,但这次没有Docker,这次我没有得到任何段错误。它还在使用Puma。在这一点上,我能指出的唯一组合是在云主机上使用Puma和Docker。

1 个答案:

答案 0 :(得分:0)

解决。这是一个影响Ruby 2.4的错误:

https://jira.mongodb.org/browse/RUBY-1202