【问题标题】:Segmentation fault on ruby installed with rbenv使用 rbenv 安装的 ruby​​ 出现分段错误
【发布时间】:2015-09-16 15:19:55
【问题描述】:

我在 Rails 应用程序中使用 ruby​​ 1.9.3。我在 OSX Yosemite 上使用 rbenv 和 gcc 4.2 成功安装了 ruby​​,并且可以使用 bundler 安装依赖项。

当我尝试设置数据库时,出现以下错误:

bundle exec rake db:setup
foo already exists
foo_test already exists
ruby(31773,0x7fff79ac7300) malloc: *** error for object 0x7fe00a8c0dc8: incorrect checksum for freed object - object was probably modified after being freed.
*** set a breakpoint in malloc_error_break to debug
[1]    31773 abort      bundle exec rake db:setup

第一次收到不同的错误消息后:

$ bundle exec rake db:setup
-- create_table("foo", {:force=>true})
   -> 0.0241s
...
-- create_table("bar", {:force=>true})
   -> 0.0241s
/Users/jedi/code/foo/.bundle/ruby/1.9.1/gems/activerecord-3.2.18/lib/active_record/migration.rb:601: [BUG] Segmentation fault
ruby 1.9.3p484 (2013-11-22 revision 43786) [x86_64-darwin14.3.0]

-- Control frame information -----------------------------------------------
c:0062 p:0012 s:0220 b:0220 l:000219 d:000219 METHOD /Users/jedi/code/foo/.bundle/ruby/1.9.1/gems/activerecord-3.2.18/lib/active_record/migration.rb:601
c:0061 p:0071 s:0216 b:0214 l:000195 d:000213 BLOCK  /Users/jedi/code/foo/.bundle/ruby/1.9.1/gems/activerecord-3.2.18/lib/active_record/migration.rb:461
c:0060 p:0005 s:0212 b:0212 l:000201 d:000211 BLOCK  /Users/jedi/code/foo/.bundle/ruby/1.9.1/gems/activerecord-3.2.18/lib/active_record/migration.rb:438
...
-- Ruby level backtrace information ----------------------------------------
/Users/jedi/code/foo/.bundle/ruby/1.9.1/bin/rake:23:in `<main>'
/Users/jedi/code/foo/.bundle/ruby/1.9.1/bin/rake:23:in `load'
...
[NOTE]
You may have encountered a bug in the Ruby interpreter or extension libraries.
Bug reports are welcome.
For details: http://www.ruby-lang.org/bugreport.html

我尝试更新到 ruby​​ 2.0.0 并使用 clang 编译 ruby​​,但总是一样。有什么想法吗?

【问题讨论】:

  • 还尝试使用 rvm 安装 ruby​​。结果相同。
  • 你正在使用 ruby​​ 1.9.3p484,你能用 ruby​​ 1.9.3p551 试试你的代码吗?您的代码在不同的操作系统上运行良好吗?例如,您可以将 ubuntu 安装在虚拟盒子中,使用 vagrant 进行测试。
  • 已经尝试增加补丁级别,但没有帮助。即使在其他 OSX Yosemite 计算机上,此应用程序也运行良好。谢谢!
  • 您介意发布整个诊断信息吗? (在聚光灯下键入console 并找到匹配的报告)。谢谢!

标签: ruby-on-rails ruby bundler rbenv osx-yosemite


【解决方案1】:

这是由计算机上安装的 zeromq 版本不正确引起的。我们使用了一个以 zeromq 3 为目标但安装了版本 4 的 gem。

在从 Gemfile 中删除和添加依赖项的一些二进制搜索之后,我得出了这个结论。降级 zeromq 完成了这项工作。

对我来说,为什么错误报告如此具有误导性,但问题解决了,这仍然是个谜。

【讨论】:

    猜你喜欢
    • 2013-06-15
    • 2020-10-24
    • 2013-01-18
    • 1970-01-01
    • 1970-01-01
    • 2016-03-21
    • 1970-01-01
    • 2016-06-09
    • 1970-01-01
    相关资源
    最近更新 更多