2015-04-06 68 views
1

下面的錯誤,當我運行rspec的:段錯誤運行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

(完整的錯誤和堆棧跟蹤在上面提供的要點)

我已經經歷了幾個解決方案,但沒有找到永久的。至多我可以在上面的要點中運行規範兩次而不重現,並且會回到相同的段錯誤。實際上它會發生在任何spec上,但這是我目前正在處理的那個。

在預感,我跑brew link openssl,但是沒有幫助。獲得該規範運行幾次的解決方案是流行的「卸載&重新安裝nokogiri」,gem pristine --all以及使用rvm對ruby gemset的完整重新編譯。

這裏的一些統計數據:

Rails 3.0.20 ruby 1.9.3p484 OSX Yosemite 10.10.2

感謝。

回答

0

我不能給出一個完整的答案,但至少我可以開始你的路徑。在Ruby中發現Segfaults非常困難(或者至少它們適合我)。

根據我的經驗,它們通常是由一對冒險寶石引起的,偶爾也會引起Ruby本身。我的第一個想法是查看編譯本機擴展的任何gem。正如你上面提到的,Nokogiri是一個流行的罪犯。 ImageMagick和一些解析器也可能不好。您可以使用此頁面查找嫌疑人:https://stackoverflow.com/a/24313346/203731

如果您沒有很多C擴展名寶石,請嘗試安裝不同的補丁級別的Ruby。 1.9.3p280我遇到了很多麻煩,但我的同事沒有遇到麻煩。然後,他們無法處理p484,而我笑了起來,踱步展示了我的光榮p484安裝(這是一個緩慢的日子)。

不管怎樣,我猜這是針對你的本地開發環境的,所以使用過時的Ruby patchlevel可能不會對你造成太大的傷害。也許沒有得到DEFCON的補丁。

如果沒有這些工作,它可能是時候開始有選擇地註釋你的Gemfile的一部分,捆綁,然後運行rspec。這並不漂亮,但它可能會奏效。

我希望這有助於!