Ruby Digest :: SHA512.hexdigest抛出一个段错误并退出Yosemite

RNi*_*ess 3 segmentation-fault ruby-enterprise-edition rvm ruby-1.8.7 osx-yosemite

我们有一个较旧的REE rails应用程序,我在OSX Yosemite的本地开发环境中工作.我最近从小牛队转投,我没有遇到任何问题.我第一次在我的新工作mac上运行这个应用程序,发现我无法登录,因为它抛出一个段错误并退出本地webrick服务器.经过一番调查,我找到了罪魁祸首:

digest = Digest::SHA512.hexdigest('some_arbitrary_value')
Run Code Online (Sandbox Code Playgroud)

经过进一步调查,我发现这行代码会引发以下错误:

[BUG] Segmentation fault
ruby 1.8.7 (2013-06-27 MBARI 8/0x6770 on patchlevel 374) [i686-darwin14.3.0], MBARI 0x6770, Ruby Enterprise Edition 2012.02
Run Code Online (Sandbox Code Playgroud)

...并退出ruby控制台.

ruby版本1.8.7和REE都在我的OSX Yosemite机器上产生了这个问题.Ruby版本1.9.3和更新版本似乎产生了预期的哈希没有错误.

从OSX Mavericks转换到Yosemite之后为什么会Digest::SHA512.hexdigest产生[BUG] Segmentation fault错误?

Ivá*_*lez 8

我在ree-1.8.7-2012.02ruby 版本和Max OS X Yosemite上遇到了同样的问题,因为我在互联网上找到的所有解决方案对我都不起作用,经过一些测试后我找到了解决方案.

你只需要改变Digest::SHA512.hexdigest(digest)OpenSSL::Digest::SHA512.new(digest).hexdigest,它会正常工作.

这有点不方便,因为您必须在整个应用程序中更改代码,但作为最后的资源,它可以工作.