升級到OSX Sierra之後,我遇到了隨機分段故障的問題。它最常發生在運行rails測試時,我相信這是由於sqlite3_adapter造成的。升級到OS Sierra後Rails的分段錯誤,可能與sqlite3 gem
我目前的工作是簡單地退出終端並重新啓動它。這適用於大約1或2個軌道測試,第三個我幾乎可以保證得到另一個分段故障。
是否有其他人對此有疑問或找到更好的解決方法?
$ rails t
Running via Spring preloader in process 13817
/Users/USER/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/activerecord-5.0.0.1/lib/active_record/connection_adapters/sqlite3_adapter.rb:27: [BUG] Segmentation fault at 0x00000000000110
ruby 2.3.1p112 (2016-04-26 revision 54768) [x86_64-darwin16]
編輯:
挖到sqlite3_adapter.rb後,我看到造成分段錯誤行是一個新的SQLite3數據庫的創建。
db = SQLite3::Database.new(
config[:database].to_s,
:results_as_hash => true
)
編輯2:
,而不是退出並重新啓動終端,我發現,在運行:
spring stop
暫時停止的問題。這不是一個解決方案,而是更好的解決方法。
編輯3:
這似乎與libsqlite3不是叉安全提供蘋果的一個問題。更多信息可以在這裏找到:
https://github.com/sparklemotion/sqlite3-ruby/issues/195
現在,我已經在我的〜/ .bashrc文件底部創建別名:
alias ss='spring stop'
時出現問題,我現在可以鍵入:
ss
然後重新運行測試。
這對我有用。這意味着它沒有符號鏈接到/ usr/local「消息中,我忽略了它沒有問題。 – ObjectNameDisplay
只是簡單的說一下,這是我工作的確切命令序列:'brew install sqlite3; gem卸載sqlite3; bundle update'。 – Petros
我無法得到這個工作,我已經運行了幾次以及'gem pristine sqlite3'並且仍然沒有任何工作。我正在運行ruby 2.3.3。否則我可以做什麼? – Casey