mysql2 0x0000000000000000 でのセグメンテーション違反
概要
FreeBSD 11.3 のポートから Redmine をインストールしました ブラウザからアクセスしようとするとクラッシュします。 エラーログには以下が表示されます。
/usr/local/lib/ruby/gems/2.6/gems/activesupport-4.2.11.1/lib/active_support/core_ext/object/duplicable.rb:111: warning: BigDecimal.new is deprecated; use BigDecimal() method instead.
/usr/local/lib/ruby/gems/2.6/gems/mysql2-0.4.10/lib/mysql2/mysql2.so: [BUG] Segmentation fault at 0x0000000000000000
ruby 2.6.6p146 (2020-03-31 revision 67876) [amd64-freebsd11]
-- Control frame information -----------------------------------------------
c:0027 p:-4313666350 s:0131 e:000130 TOP [FINISH]
c:0026 p:---- s:0128 e:000127 CFUNC :require
c:0025 p:0261 s:0123 e:000122 TOP /usr/local/lib/ruby/gems/2.6/gems/mysql2-0.4.10/lib/mysql2.rb:31 [FINISH]
c:0024 p:---- s:0119 e:000118 CFUNC :require
c:0023 p:0033 s:0114 e:000113 BLOCK /usr/local/lib/ruby/gems/2.6/gems/bundler-2.0.2/lib/bundler/runtime.rb:81 [FINISH]
出力はかなり長いので短くしました。これはスタックの一番上のエラーです。 この質問にどのコミュニティで対処するのが良いかわからないので、最初にここで質問することにしました。
解決策
今日、ubuntu 20.04とmsql2 -v 0.5.1で同様の問題に直面しました。問題の解決策:
sudo apt remove libmysqlclient-dev
sudo apt install libmariadbclient-dev
gem install mysql2 -v '0.5.1'
ここでさらに詳しく説明します。 https://translate.google.com/translate?hl=ja&sl=en&tl=ja&u=https://github.com/brianmario/mysql2/issues/1075
またはそれ以降のバージョンの場合:
sudo apt remove libmariadbd-dev
sudo apt install libmariadbd-dev
gem install mysql2 -v 'your version'