【发布时间】:2015-07-09 06:11:10
【问题描述】:
我们有一个较旧的 REE rails 应用程序,我在 OSX Yosemite 的本地开发环境中工作。我最近从小牛队转会,我没有遇到任何问题。我第一次在我的新工作 mac 上运行这个应用程序,发现我无法登录,因为它抛出了一个段错误错误并退出了本地 webrick 服务器。经过一番调查,我找到了罪魁祸首:
digest = Digest::SHA512.hexdigest('some_arbitrary_value')
经过进一步调查,我发现这行代码抛出了以下错误:
[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
...然后退出 ruby 控制台。
ruby 版本 1.8.7 和 REE 在我的 OSX Yosemite 机器上都产生了这个问题。 Ruby 1.9.3 和更新版本似乎可以生成预期的哈希值而不会出错。
为什么在从 OSX Mavericks 切换到 Yosemite 后,Digest::SHA512.hexdigest 会产生 [BUG] Segmentation fault 错误?
【问题讨论】:
-
这不是解决方案,但我的临时解决方法是在该行代码中将 512 更改为 256,以便我可以完成我的紧急任务而不必实际解决问题。请注意,使用 512 加密的任何内容都将不再匹配您现在加密的任何内容,但就我而言,我可以轻松重置密码并登录以继续开发。
标签: segmentation-fault rvm osx-yosemite ruby-1.8.7 ruby-enterprise-edition