运行rspec时出现以下错误:
rspec spec/mailers/lead_mailer_spec.rb
/Users/ryanbales/.rvm/gems/ruby-1.9.3-p484/gems/honeybadger-1.16.1/lib/honeybadger/exception_extensions.rb:11: [BUG] Segmentation fault
ruby 1.9.3p484 (2013-11-22 revision 43786) [x86_64-darwin14.1.0]
..............................
[NOTE]
You may have encountered a bug in the Ruby interpreter or extension libraries.
Bug reports are welcome.
For details: http://www.ruby-lang.org/bugreport.html
https://gist.github.com/ryankbales/b1732adee7fe503627d1
(完整错误和堆栈跟踪在上面提供的要点中)
我已经经历了几个解决方案而没有找到永久的解决方案。最多我可以在上面的gist中运行规范两次而无需重现,而且它将返回到相同的段错误。它实际上会发生任何规范,但这是我目前正在研究的那个。
在预感中,我跑了brew link openssl
,但这并没有帮助。确实让规范运行几次的解决方案是流行的“卸载和重新安装nokogiri”,gem pristine --all
以及使用rvm
完整重新编译ruby gemset。
以下是一些统计数据:
Rails 3.0.20
ruby 1.9.3p484
OSX Yosemite 10.10.2
感谢。
答案 0 :(得分:0)
我无法给出完整的答案,但至少我可以让你走上正轨。在Ruby中很难弄清楚Segfaults(或者至少它们适合我)。
根据我的经验,他们通常是由几个冒犯的宝石造成的,但偶尔也会造成Ruby本身。我的第一个想法是查看编译原生扩展的任何宝石。如上所述,Nokogiri是一个受欢迎的罪犯。 ImageMagick和一些解析器也可能不好。您可以使用此页面查找嫌疑人:https://stackoverflow.com/a/24313346/203731
如果您没有很多C扩展宝石,请尝试安装不同的Ruby补丁级别。我在1.9.3p280上遇到了很多麻烦但是我的同事没有遇到麻烦。然后他们无法处理p484,而我笑了起来,抱怨我的光辉p484安装房间(这是一个缓慢的一天)。
无论如何,我猜这是针对你的本地开发环境的,所以使用过时的Ruby补丁级别可能不会对你造成太大的伤害。也许没有得到DEFCON没有打补丁。
如果这些都不起作用,可能是时候开始有选择地评论部分Gemfile,捆绑,然后运行rspec。它不漂亮,但它可能会奏效。
我希望这有帮助!