我正在为我的应用程序设置另一个开发人员,我遇到了一个看起来非常低级的Ruby问题。该应用程序在我的机器上运行得非常好,但在其他开发人员上运行不正确。
Sunspot正在使用Nokogiri进行搜索索引。
Ruby由RVM安装(对于我和其他开发人员)。我们尝试过不同版本的Ruby 1.9.2和不同版本的nokogiri。
我怀疑Ruby构建存在问题。这个问题可能与环境有关吗?你如何解决这样的问题?
当运行“rake sunspot:solr:start”时,nokogiri在Ruby中失败并出现以下错误:
**编辑**
我们已经确定了nokogiri 1.4.7(以适应一些错误修复)并在下面收到“rb_gc()上的”跨线程违规“错误。当我们使用“rails s”启动服务器时,我们会收到此错误。我将用nokogiri 1.4.4离开回溯,以帮助调查。
这是在Nokogiri 1.4.4:
Users/fredyates/.rvm/gems/ruby-1.9.2-p290/gems/nokogiri-1.4.4/lib/nokogiri/nokogiri.bundle: [BUG] Segmentation fault
ruby 1.9.2p180 (2011-02-18 revision 30909) [x86_64-darwin10.7.0]
-- control frame ----------
c:0034 p:-542802226 s:0105 b:0105 l:000104 d:000104 TOP
c:0033 p:---- s:0103 b:0103 l:000102 d:000102 CFUNC :require
c:0032 p:0186 s:0099 b:0099 l:000098 d:000098 TOP /Users/fredyates/.rvm/gems/ruby-1.9.2-p290/gems/nokogiri-1.4.4/lib/nokogiri.rb:13
c:0031 p:---- s:0097 b:0097 l:000096 d:000096 FINISH
c:0030 p:---- s:0095 b:0095 l:000094 d:000094 CFUNC :require
...
-- C level backtrace information -------------------------------------------
[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
在nokogiri 1.4.7中:
[BUG] rb_gc()(null)
上的跨线程违规zsh:abort rake sunspot:solr:start
对我而言,这看起来像Ruby问题。
nokogiri -v(对我来说):
---
warnings: []
nokogiri: 1.4.7
ruby:
version: 1.9.2
platform: x86_64-darwin10.7.4
description: ruby 1.9.2p180 (2011-02-18 revision 30909) [x86_64-darwin10.7.4]
engine: ruby
libxml:
binding: extension
compiled: 2.7.8
loaded: 2.7.8
nokogiri -v(对于其他开发者)
---
warnings: []
nokogiri: 1.4.7
ruby:
version: 1.9.2
platform: x86_64-darwin10.7.0
description: ruby 1.9.2p180 (2011-02-18 revision 30909) [x86_64-darwin10.7.0]
engine: ruby
libxml:
binding: extension
compiled: 2.7.8
loaded: 2.7.8
答案 0 :(得分:0)
我前一段时间遇到了一个类似(并且令人烦恼)的问题。您可以尝试使用rvm gemset来查看是否有帮助。我记得虽然我需要核武器并重新安装('rvm implode'会做核武器)。
这也可能是32位与64位编译问题。如果这是在Snow Leopard或Lion Mac上,他们可能会尝试将ARCH_FLAGS =“ - arch x86_64”添加到他们的.bash_login文件或等效文件中(假设尚未定义)。
答案 1 :(得分:0)
这可能与Alex关于32位与64位的评论有关,但正在运行gem pristine nokogiri
为我解决了这个问题。