しおメモ

雑多な技術系ブログです。ニッチな内容が多いです。

macOS Sierraとsqlite3 1.3.11でsegmentation fault

Mac初心者なので、El CapitanとかSierraとか言われてもよくわからないのですが、とりあえず今使っているSierraとsqlite3 1.3.11の組み合わせが良くないらしく、引っかかったのでメモ。
Mac OS"ではなくて、"macOS"なんですね。

環境

macOS 10.12 Sierra
ruby 2.3.3p222
sqlite3 1.3.11

症状

sqlite3 1.3.11をbundleでインストールした後、rails tを実行すると、最初の数回は正常に動いたが、その後以下のようなエラーを吐くようになった。

/Users/XXX/.rbenv/versions/2.3.3/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.3p222 (2016-11-21 revision 56859) [x86_64-darwin16]

-- Crash Report log information --------------------------------------------
   See Crash Report log file under the one of following:                    
     * ~/Library/Logs/CrashReporter                                         
     * /Library/Logs/CrashReporter                                          
     * ~/Library/Logs/DiagnosticReports                                     
     * /Library/Logs/DiagnosticReports                                      
   for more details.                                                        
Don't forget to include the above Crash Report log file in bug reports.     

...

対策

sqlite3を1.3.12以降のものにする。
私の場合はGemfileで1.3.12を指定してbundle updateする事でうまくいきました。
それでもうまくいかない場合は、下記リンクのようにいったんgemを削除して、brew経由でsqlite3を持ってくる方法もあるみたいです。

関連

Segmentation fault with Rails after upgrading to OS Sierra, possibly related to sqlite3 gem - Stack Overflow

Segmentation fault with sqlite3 and Rails console on macOS Sierra · Petros Amiridis