環境
MacOS
Rails 6.1.3
carrierwave
rmagic
Problem
いつものように画像をアップロードして登録しようとするとおびただしい数のエラーが表示されてrails serverが落ちました。railsでクラッシュしたのは初めてです。
...
/Users/xxx/Projects/xxx/vendor/bundle/ruby/3.0.0/gems/carrierwave-2.2.1/lib/carrierwave/processing/rmagick.rb:352: [BUG] Segmentation fault at 0x000000000000332e
ruby 3.0.0p0 (2020-12-25 revision 95aff21468) [x86_64-darwin19]
-- Crash Report log information --------------------------------------------
See Crash Report log file under the one of following:
* ~/Library/Logs/DiagnosticReports
* /Library/Logs/DiagnosticReports
for more details.
Don't forget to include the above Crash Report log file in bug reports.
-- Control frame information -----------------------------------------------
...
[IMPORTANT]
Don't forget to include the Crash Report log file under
DiagnosticReports directory in bug reports.
rmagickでエラーが出てるので画像をリサイズする工程でうまく行ってないみたいです。
Solve
原因には心当たりがありました。
最近「brew upgrade」を実行した際に「imagemagick@6」がアップデートされたのです。
rmagickとimagemagickは関係しています。
恐らくimagemagickのアップデートの影響だと思われます。試行錯誤した結果以下で落ち着きました。
# 6系を削除して7系を入れます
brew uninstall imagemagick@6
brew install imagemagick
# 一応gemも総入れ替えしました
rm Gemfile.lock
rm -rf vendor/bundle/
bundle install
6系じゃないと動かない的な記事を見ましたが、今や7系でもちゃんと動くみたいです。
これで今まで通り画像をアップロードしてリサイズする事ができるようになりました。
バージョンアップで今回のようなことが起きないようにバージョンを固定したほうが良いかもしれないですね。
# アップデートされないようにフリーズしておきます
brew pin imagemagick
Summary
かなりハマったのでどなたかの助けになれたなら幸いです。