mysql2 分段错误位于 0x0000000000000000

hex*_*mal 3 ruby mysql rubygems redmine

我从 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]
Run Code Online (Sandbox Code Playgroud)

输出更长,我将其缩短,这是堆栈中最上面的错误。我不确定哪个社区更适合解决这个问题,所以我决定先在这里问。

Vik*_*iev 12

我今天在 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' 
Run Code Online (Sandbox Code Playgroud)

这里有更详细的描述: https://github.com/brianmario/mysql2/issues/1075

或者对于更高版本:

sudo apt remove libmariadbd-dev
sudo apt install libmariadbd-dev
gem install mysql2 -v 'your version' 

Run Code Online (Sandbox Code Playgroud)