__NSPlaceholderDictionary initialize~というエラーが出て、railsがクラッシュする。
現在、macOS High Sierra上でruby 2.4.1p111を入れ、その上でrailsを動かしています。
その環境でkuromoji-rubyというgemを入れ、Kuromoji::Core.new.tokenize("")
と打ったところ、
objc[16283]: +[__NSPlaceholderDictionary initialize] may have been in progress in another thread when fork() was called.
objc[16283]: +[__NSPlaceholderDictionary initialize] may have been in progress in another thread when fork() was called. We cannot safely call it or ignore it in the fork() child process. Crashing instead. Set a breakpoint on objc_initializeAfterForkError to debug.
というエラーがでました。
そこで調べたところ、このエラーはgemの問題ではなく、MacOS上のruby特有の汎用的なエラーであること、また解決方法としてはOBJC_DISABLE_INITIALIZE_FORK_SAFETYという環境変数をyesで設定すれば良いと書いてありました。
そこで試して見ましたが、エラーは改善されませんでした。
どのようにすれば、このエラーを取り除くことが出来るでしょうか?ご回答よろしくお願いします。
また実行時のコマンドの詳細を以下に書かせて頂きます。
$echo $OBJC_DISABLE_INITIALIZE_FORK_SAFETY
yes
$OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES bin/rails c
irb(main):001:0> Kuromoji::Core.new.tokenize("")
objc[16283]: +[__NSPlaceholderDictionary initialize] may have been in progress in another thread when fork() was called.
objc[16283]: +[__NSPlaceholderDictionary initialize] may have been in progress in another thread when fork() was called. We cannot safely call it or ignore it in the fork() child process. Crashing instead. Set a breakpoint on objc_initializeAfterForkError to debug.