Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 运行rspec时出现SEGFULT_Ruby On Rails_Ruby_Rspec_Segmentation Fault - Fatal编程技术网

Ruby on rails 运行rspec时出现SEGFULT

Ruby on rails 运行rspec时出现SEGFULT,ruby-on-rails,ruby,rspec,segmentation-fault,Ruby On Rails,Ruby,Rspec,Segmentation Fault,运行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

运行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

(完整错误和堆栈跟踪在上面提供的要点中)

我已经经历了几个解决方案,但还没有找到永久的解决方案。我最多可以在上面的要点中运行两次规范,而不进行复制,然后它将返回到相同的故障。这将发生在任何规格实际上,但这是一个我正在工作的时刻

凭直觉,我运行了
brew链接openssl
,但这并没有帮助。使规范运行了几次的解决方案是流行的“卸载并重新安装nokogiri”、
gem pristine——所有这些都是使用
rvm
重新编译ruby gemset

以下是一些统计数据:

Rails 3.0.20
ruby 1.9.3p484
OSX约塞米蒂10.10.2


谢谢。

我不能给出一个完整的答案,但至少我可以让你开始走这条路。在Ruby中,Segfaults非常难理解(至少对我来说是这样)

根据我的经验,它们通常是由一些令人不快的宝石引起的,但偶尔也会由Ruby本身引起。我的第一个想法是看看编译本机扩展的任何gem。正如你上面提到的,Nokogiri是一个很受欢迎的罪犯。ImageMagick和一些解析器也可能不好。您可以使用此页面查找嫌疑犯:

如果您没有很多C扩展gem,请尝试安装不同级别的Ruby补丁。我在1.9.3p280上遇到了很多问题,但我的同事对此没有任何问题。然后他们无法处理p484,而我在房间里欢笑和跳跃,炫耀我辉煌的p484安装(这是一个缓慢的一天)

无论如何,我猜这是为了您的本地开发环境,所以使用过时的Ruby补丁级别可能不会对您造成太大的伤害。也许你不必在不打补丁的情况下解除戒备

如果这些都不起作用,那么可能是时候开始有选择地注释掉Gemfile的部分内容,打包,然后运行rspec了。这并不漂亮,但可能有用

我希望这有帮助