【问题标题】:Ruby 1.9.3-p0 and RSpec causes frequent segmentation faultsRuby 1.9.3-p0 和 RSpec 导致频繁的分段错误
【发布时间】:2011-11-09 13:20:03
【问题描述】:

只是我,还是 Ruby 1.9.3 在运行 RSpec 时引入了频繁的分段错误?

自从升级到 1.9.3 后,我发现启动时间明显加快了,但是在大约 50% 的时间运行 RSpec 时会出现分段错误。

我从 Ruby 得到的输出是http://pastebin.com/89YmpzaJ 我的 Gemfile 位于http://pastebin.com/L6r73Max

有人知道是什么原因造成的吗?我在 CI 服务器和本地开发机器上都看到了这个问题。

【问题讨论】:

  • 我添加了分段错误,尝试将 rails 3.1 与 ruby​​ 1.8.7 一起使用,当我确保 rails 使用 1.9.2+ 时,该错误消失了 不知道这是否有帮助(所以不是答案)但是我想我会提到它。有时,当您有多个 ruby​​ 版本时,也会选择错误的版本。

标签: segmentation-fault rspec2 ruby-1.9.3


【解决方案1】:

pry-doc/yard 似乎存在问题,可能导致 yard 中的段错误。我所知道的最好的解决方法是根本不使用 pry-doc。 Pry-rails 依赖于 pry-doc 是为了方便,因此除了从 Gemfile 中删除 pry-doc 之外,您还需要修改 pry-rails 以删除其对 pry-doc 的依赖。

(我已经分叉了 pry-rails 来做到这一点:https://github.com/chrisfarber/pry-rails。)

【讨论】:

  • 谢谢克里斯。几天没有使用 pry-doc,因为没有任何问题。
  • 顺便说一句。克里斯,你用 Pry-rails 开票了吗?如果没有,我会提出一个让他们知道这个问题。
  • 好主意,马特。我在其 github 页面上发布了一个问题。
【解决方案2】:

问题不在于 ruby​​ 1.9.3,而是在于您的编译器,我猜您在 mac os x lio n 上并使用 Xcode 4.2?新的默认编译器 (llvm) 不知何故引入了一个错误,导致 yard 中的继续检查导致 seg 错误。据我记得,如果你用 gcc 4.2 编译它应该可以工作

我认为,应该这样做

CC=gcc-4.2 rvm install 1.9.3

【讨论】:

  • 确实我使用的是 Mac OS X Lion 和 XCode 4.2 我怎样才能让 rvm 使用 GCC 而不是 Xcode 进行编译?
  • 不,不幸的是没有任何区别。
  • 这里有一篇关于设置默认编译器的好帖子:stackoverflow.com/questions/1165361/…
【解决方案3】:

我遇到了同样的问题,在将 pry-doc 更新到 0.4.2 版后,rspec 一直运行而没有“分段错误”

【讨论】:

    猜你喜欢
    • 2012-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-20
    相关资源
    最近更新 更多