我正在为我的应用程序设置另一个开发人员,我遇到了一个Ruby问题,似乎是非常低的水平。这个应用程序在我的机器上运行得很好,但在其他开发人员的机器上却不行。
Nokogiri正在被Sunspot用于搜索索引。
Ruby是由RVM安装的(对于我和其他开发人员来说)。我们已经尝试了Ruby 1.9.2的不同补丁和nokogiri的不同版本。
我怀疑Ruby版本有问题。这个问题是否与环境有关?你如何解决这样的问题?
当运行"rake sunspot:solr:start"时,nokogiri在Ruby中失败,出现以下错误:
** EDIT **
我们已经解决了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
Within nokogiri 1.4.7:
[BUG] rb_gc() (null)的跨线程冲突
zsh: abort rake太阳黑子:solr:start
对我来说,这看起来像是Ruby的问题。
nokogiri -v (for me):
---
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
前段时间我遇到了类似的(令人烦恼的)问题。您可以尝试使用rvm gemset来查看是否有帮助。正如我回忆的那样,虽然我需要nuke rvm并重新安装('rvm implode'将执行nuking)。
这也可能是32位与64位编译问题。如果这是在雪豹或狮子mac上,他们可能会尝试在他们的.bash_login文件或等效文件中添加ARCH_FLAGS="-arch x86_64"(假设尚未定义)。
这可能与Alex关于32位和64位的评论有关,但是运行gem pristine nokogiri
为我解决了这个问题。