有时我的测试套件会无缘无故地抛出分段错误。这是输出:
/Users/Test/.rvm/gems/ruby-1.9.3-p392/gems/activerecord-3.2.9/lib/active_record/relation/query_methods.rb:268: [BUG] Bus Error
ruby 1.9.3p392 (2013-02-22 revision 39386) [x86_64-darwin12.3.0]
-- Control frame information -----------------------------------------------
c:0209 p:---- s:0839 b:0839 l:000838 d:000838 CFUNC :-
c:0208 p:0068 s:0835 b:0833 l:000832 d:000832 METHOD /Users/Test/.rvm/gems/ruby-1.9.3-p392/gems/activerecord-3.2.9/lib/active_record/relation/query_methods.rb:268
c:0207 p:0031 s:0828 b:0828 l:000827 d:000827 METHOD /Users/Test/.rvm/gems/ruby-1.9.3-p392/gems/activerecord-3.2.9/lib/active_record/relation/query_methods.rb:260
c:0206 p:0084 s:0825 b:0825 l:000824 d:000824 METHOD /Users/Test/.rvm/gems/ruby-1.9.3-p392/gems/activerecord-3.2.9/lib/active_record/relation/calculations.rb:196
c:0205 p:0166 s:0818 b:0818 l:000817 d:000817 METHOD /Users/Test/.rvm/gems/ruby-1.9.3-p392/gems/activerecord-3.2.9/lib/active_record/relation/calculations.rb:159
c:0204 p:0050 s:0811 b:0811 l:000810 d:000810 METHOD /Users/Test/.rvm/gems/ruby-1.9.3-p392/gems/activerecord-3.2.9/lib/active_record/relation/calculations.rb:58
c:0203 p:0089 s:0806 b:0806 l:000805 d:000805 METHOD /Users/Test/Dropbox/projects/rails/my_shop/app/models/line_item_decorator.rb:7
c:0202 p:---- s:0802 b:0802 l:000801 d:000801 FINISH
c:0201 p:---- s:0800 b:0800 l:000370 d:000799 IFUNC
c:0200 p:0008 s:0798 b:0797 l:001cd0 d:000796 BLOCK /Users/Test/.rvm/gems/ruby-1.9.3-p392/gems/activerecord-3.2.9/lib/active_record/relation/calculations.rb:94
c:0199 p:---- s:0794 b:0794 l:000793 d:000793 FINISH
c:0198 p:---- s:0792 b:0792 l:000791 d:000791 CFUNC :map
c:0197 p:0028 s:0789 b:0789 l:000788 d:000788 METHOD /Users/Test/.rvm/gems/ruby-1.9.3-p392/gems/activesupport-3.2.9/lib/active_support/core_ext/enumerable.rb:60
c:0196 p:0030 s:0784 b:0784 l:001cd0 d:001cd0 METHOD /Users/Test/.rvm/gems/ruby-1.9.3-p392/gems/activerecord-3.2.9/lib/active_record/relation/calculations.rb:94
....
我们正在使用Spree Commerce和Ruby 1.9.3以及Rails 3.2.9。这是Gemfile.lock:
GIT
remote: git://github.com/spree/spree.git
revision: 0d81ee0a2265797641ce90e120ea4fd8b085fc12
ref: 0d81ee0a2265797641ce90e120ea4fd8b085fc12
branch: 1-2-stable
specs:
spree (1.2.0)
spree_api (= 1.2.0)
spree_cmd (= 1.2.0)
spree_core (= 1.2.0)
spree_dash (= 1.2.0)
spree_promo (= 1.2.0)
spree_sample (= 1.2.0)
spree_api (1.2.0)
spree_core (= 1.2.0)
spree_cmd (1.2.0)
thor (>= 0.14.6)
spree_core (1.2.0)
activemerchant (= 1.28.0)
acts_as_list (= 0.1.4)
awesome_nested_set (= 2.1.4)
aws-sdk (~> 1.3.4)
cancan (= 1.6.7)
deface (>= 0.9.0)
ffaker (~> 1.12.0)
highline (= 1.6.11)
jquery-rails (~> 2.0)
kaminari (= 0.13.0)
money (= 5.0.0)
paperclip (~> 2.8)
rabl (= 0.7.2)
rails (~> 3.2.9)
ransack (~> 0.7.0)
select2-rails (~> 3.0)
state_machine (= 1.1.2)
stringex (~> 1.3.2)
spree_dash (1.2.0)
httparty (~> 0.8.1)
spree_core (= 1.2.0)
spree_promo (1.2.0)
spree_core (= 1.2.0)
spree_sample (1.2.0)
spree_core (= 1.2.0)
GIT
remote: git://github.com/spree/spree_auth_devise
revision: d06f95d861d19547b407bc2e50b03667e5572ebd
branch: 1-2-stable
specs:
spree_auth_devise (1.2.0)
cancan (~> 1.6.7)
devise (~> 2.2.3)
devise-encryptable (= 0.1.1)
spree_core
GIT
remote: git://github.com/sunspot/sunspot.git
revision: 5488725cb2587973e7ff809f234eb437a76424f4
branch: master
specs:
sunspot (2.0.0)
pr_geohash (~> 1.0)
rsolr (~> 1.0.7)
sunspot_rails (2.0.0)
nokogiri
sunspot (= 2.0.0)
sunspot_solr (2.0.0)
GIT
remote: https://github.com/Goltergaul/spree_i18n.git
revision: 98662fb03d250b920a0d8481fa6448bf56497474
specs:
spree_i18n (1.0.0)
i18n (~> 0.5)
spree (~> 1.1)
GEM
remote: https://rubygems.org/
specs:
actionmailer (3.2.9)
actionpack (= 3.2.9)
mail (~> 2.4.4)
actionpack (3.2.9)
activemodel (= 3.2.9)
activesupport (= 3.2.9)
builder (~> 3.0.0)
erubis (~> 2.7.0)
journey (~> 1.0.4)
rack (~> 1.4.0)
rack-cache (~> 1.2)
rack-test (~> 0.6.1)
sprockets (~> 2.2.1)
active_utils (2.0.1)
activesupport (>= 2.3.11)
i18n
activemerchant (1.28.0)
active_utils (>= 1.0.2)
activesupport (>= 2.3.11)
builder (>= 2.0.0)
i18n
json (>= 1.5.1)
money
nokogiri
activemodel (3.2.9)
activesupport (= 3.2.9)
builder (~> 3.0.0)
activerecord (3.2.9)
activemodel (= 3.2.9)
activesupport (= 3.2.9)
arel (~> 3.0.2)
tzinfo (~> 0.3.29)
activeresource (3.2.9)
activemodel (= 3.2.9)
activesupport (= 3.2.9)
activesupport (3.2.9)
i18n (~> 0.6)
multi_json (~> 1.0)
acts_as_list (0.1.4)
addressable (2.3.4)
airbrake (3.1.11)
activesupport
builder
json
akami (1.2.0)
gyoku (>= 0.4.0)
nokogiri (>= 1.4.0)
arel (3.0.2)
awesome_nested_set (2.1.4)
activerecord (>= 3.0.0)
aws-sdk (1.3.9)
httparty (~> 0.7)
json (~> 1.4)
nokogiri (>= 1.4.4)
uuidtools (~> 2.1)
bcrypt-ruby (3.0.1)
builder (3.0.4)
cancan (1.6.7)
capistrano (2.15.2)
highline
net-scp (>= 1.0.0)
net-sftp (>= 2.0.0)
net-ssh (>= 2.0.14)
net-ssh-gateway (>= 1.1.0)
capybara (2.1.0)
mime-types (>= 1.16)
nokogiri (>= 1.3.3)
rack (>= 1.0.0)
rack-test (>= 0.5.4)
xpath (~> 2.0)
childprocess (0.3.9)
ffi (~> 1.0, >= 1.0.11)
choice (0.1.6)
chronic (0.9.1)
chunky_png (1.2.8)
climate_control (0.0.3)
activesupport (>= 3.0)
cocaine (0.5.2)
climate_control (>= 0.0.3, < 1.0)
coffee-rails (3.2.2)
coffee-script (>= 2.2.0)
railties (~> 3.2.0)
coffee-script (2.2.0)
coffee-script-source
execjs
coffee-script-source (1.6.2)
colorize (0.6.0)
columnize (0.3.6)
compass (0.12.2)
chunky_png (~> 1.2)
fssm (>= 0.2.7)
sass (~> 3.1)
compass-rails (1.0.3)
compass (>= 0.12.2, < 0.14)
crack (0.3.2)
database_cleaner (0.9.1)
debugger (1.5.0)
columnize (>= 0.3.1)
debugger-linecache (~> 1.2.0)
debugger-ruby_core_source (~> 1.2.0)
debugger-linecache (1.2.0)
debugger-ruby_core_source (1.2.0)
deface (1.0.0)
colorize (>= 0.5.8)
nokogiri (~> 1.6.0)
rails (>= 3.1)
devise (2.2.3)
bcrypt-ruby (~> 3.0)
orm_adapter (~> 0.1)
railties (~> 3.1)
warden (~> 1.2.1)
devise-encryptable (0.1.1)
devise (>= 2.1.0.rc)
devise-i18n (0.8.3)
diff-lcs (1.2.4)
ean (0.2.0)
email_spec (1.4.0)
launchy (~> 2.1)
mail (~> 2.2)
erubis (2.7.0)
eventmachine (1.0.3)
execjs (1.4.0)
multi_json (~> 1.0)
factory_girl (4.2.0)
activesupport (>= 3.0.0)
factory_girl_rails (4.2.1)
factory_girl (~> 4.2.0)
railties (>= 3.0.0)
fattr (2.2.1)
faye-websocket (0.4.7)
eventmachine (>= 0.12.0)
ffaker (1.12.1)
ffi (1.9.0)
fssm (0.2.10)
gyoku (1.0.0)
builder (>= 2.1.2)
haml (4.0.2)
tilt
highline (1.6.11)
hike (1.2.3)
http_parser.rb (0.5.3)
httparty (0.8.3)
multi_json (~> 1.0)
multi_xml
httpi (2.0.2)
rack
i18n (0.6.5)
journey (1.0.4)
jquery-fileupload-rails (0.4.1)
actionpack (>= 3.1)
railties (>= 3.1)
jquery-rails (2.3.0)
railties (>= 3.0, < 5.0)
thor (>= 0.14, < 2.0)
json (1.8.0)
kaminari (0.13.0)
actionpack (>= 3.0.0)
activesupport (>= 3.0.0)
railties (>= 3.0.0)
launchy (2.3.0)
addressable (~> 2.3)
libv8 (3.11.8.17)
mail (2.4.4)
i18n (>= 0.4.0)
mime-types (~> 1.16)
treetop (~> 1.4.8)
mime-types (1.25)
mini_portile (0.5.1)
money (5.0.0)
i18n (~> 0.4)
json
multi_json (1.8.2)
multi_xml (0.5.5)
mysql2 (0.3.11)
net-scp (1.1.0)
net-ssh (>= 2.6.5)
net-sftp (2.1.1)
net-ssh (>= 2.6.5)
net-ssh (2.6.7)
net-ssh-gateway (1.2.0)
net-ssh (>= 2.6.5)
newrelic_rpm (3.6.7.152)
nokogiri (1.6.0)
mini_portile (~> 0.5.0)
nori (2.1.0)
options (2.3.0)
fattr
orm_adapter (0.4.0)
paperclip (2.8.0)
activerecord (>= 2.3.0)
activesupport (>= 2.3.2)
cocaine (>= 0.0.2)
mime-types
poltergeist (1.2.0)
capybara (~> 2.1.0)
faye-websocket (~> 0.4, >= 0.4.4)
http_parser.rb (~> 0.5.3)
polyamorous (0.5.0)
activerecord (~> 3.0)
polyglot (0.3.3)
pr_geohash (1.0.0)
progress_bar (1.0.0)
highline (~> 1.6.1)
options (~> 2.3.0)
rabl (0.7.2)
activesupport (>= 2.3.14)
multi_json (~> 1.0)
rack (1.4.5)
rack-cache (1.2)
rack (>= 0.4)
rack-ssl (1.3.3)
rack
rack-test (0.6.2)
rack (>= 1.0)
rails (3.2.9)
actionmailer (= 3.2.9)
actionpack (= 3.2.9)
activerecord (= 3.2.9)
activeresource (= 3.2.9)
activesupport (= 3.2.9)
bundler (~> 1.0)
railties (= 3.2.9)
rails-erd (1.1.0)
activerecord (>= 3.0)
activesupport (>= 3.0)
choice (~> 0.1.6)
ruby-graphviz (~> 1.0.4)
rails-i18n (0.7.3)
i18n (~> 0.5)
railties (3.2.9)
actionpack (= 3.2.9)
activesupport (= 3.2.9)
rack-ssl (~> 1.3.2)
rake (>= 0.8.7)
rdoc (~> 3.4)
thor (>= 0.14.6, < 2.0)
rake (10.1.0)
ransack (0.7.2)
actionpack (~> 3.0)
activerecord (~> 3.0)
polyamorous (~> 0.5.0)
rdoc (3.12.2)
json (~> 1.4)
ref (1.0.4)
rsolr (1.0.9)
builder (>= 2.1.2)
rspec (2.13.0)
rspec-core (~> 2.13.0)
rspec-expectations (~> 2.13.0)
rspec-mocks (~> 2.13.0)
rspec-core (2.13.1)
rspec-expectations (2.13.0)
diff-lcs (>= 1.1.3, < 2.0)
rspec-mocks (2.13.1)
rspec-rails (2.13.0)
actionpack (>= 3.0)
activesupport (>= 3.0)
railties (>= 3.0)
rspec-core (~> 2.13.0)
rspec-expectations (~> 2.13.0)
rspec-mocks (~> 2.13.0)
ruby-graphviz (1.0.8)
ruby-prof (0.13.0)
rubyzip (0.9.9)
sass (3.2.12)
sass-rails (3.2.6)
railties (~> 3.2.0)
sass (>= 3.1.10)
tilt (~> 1.3)
savon (2.2.0)
akami (~> 1.2.0)
builder (>= 2.1.2)
gyoku (~> 1.0.0)
httpi (~> 2.0.2)
nokogiri (>= 1.4.0)
nori (~> 2.1.0)
wasabi (~> 3.1.0)
select2-rails (3.5.0)
thor (~> 0.14)
selenium-webdriver (2.35.1)
childprocess (>= 0.2.5)
multi_json (~> 1.0)
rubyzip (< 1.0.0)
websocket (~> 1.0.4)
simple_form (2.1.0)
actionpack (~> 3.0)
activemodel (~> 3.0)
spree_skrill (1.0.2)
spree_core (>= 1.0.0)
spree_usa_epay (1.0.2)
savon
spree_core (>= 1.0.0)
sprockets (2.2.2)
hike (~> 1.2)
multi_json (~> 1.0)
rack (~> 1.0)
tilt (~> 1.1, != 1.3.0)
state_machine (1.1.2)
steak (2.0.0)
capybara (>= 1.0.0)
rspec-rails (>= 2.5.0)
stringex (1.3.3)
therubyracer (0.11.4)
libv8 (~> 3.11.8.12)
ref
thor (0.18.1)
tilt (1.4.1)
timecop (0.6.1)
treetop (1.4.15)
polyglot
polyglot (>= 0.3.1)
tunnels (1.2.2)
eventmachine
tzinfo (0.3.38)
uglifier (2.0.1)
execjs (>= 0.3.0)
multi_json (~> 1.0, >= 1.0.2)
useragent (0.6.0)
uuidtools (2.1.4)
vcr (2.5.0)
warden (1.2.1)
rack (>= 1.0)
wasabi (3.1.0)
httpi (~> 2.0)
nokogiri (>= 1.4.0)
webmock (1.8.11)
addressable (>= 2.2.7)
crack (>= 0.1.7)
websocket (1.0.7)
whenever (0.8.2)
activesupport (>= 2.3.4)
chronic (>= 0.6.3)
wicked_pdf (0.9.6)
rails
xpath (2.0.0)
nokogiri (~> 1.3)
zurb-foundation (4.1.2)
sass (>= 3.2.0)
PLATFORMS
ruby
DEPENDENCIES
airbrake
capistrano
coffee-rails (~> 3.2.1)
compass-rails
database_cleaner
debugger (~> 1.5.0)
devise-encryptable
devise-i18n
ean
email_spec
factory_girl_rails
haml
httparty
jquery-fileupload-rails
jquery-rails
kaminari
launchy
mysql2
newrelic_rpm
poltergeist
progress_bar
rails (= 3.2.9)
rails-erd
rails-i18n
rspec
ruby-prof
sass-rails (~> 3.2.3)
selenium-webdriver
simple_form
spree!
spree_auth_devise!
spree_i18n!
spree_ipayment!
spree_paypal_express!
spree_skrill
spree_usa_epay
spree_wirecard!
steak
sunspot_rails!
sunspot_solr!
therubyracer
timecop
tunnels
uglifier (>= 1.0.3)
useragent
vcr
webmock (~> 1.8.3)
whenever
wicked_pdf
zurb-foundation
有时它会抛出错误,有时它不会抛出错误,有时它甚至会由状态机gem中的某个文件引起。在line_item_decorator.rb:7
,只有一个数据库查询,没什么特别的。
我使用的是Mac OS X 10.8.5,但错误也发生在Ubuntu 13上。
知道如何解决这个问题吗?
答案 0 :(得分:7)
你在Mac上开发吗? Nokogiri是造成这些分段错误的宝石;这是Mac上一个非常常见的问题,特别是如果你已经安装了brew。
您可以查看在this url安装nokogiri的正确方法。
首先,从系统中卸载所有nokogiri版本:
gem uninstall nokogiri
(select all)
接下来,如果你有啤酒,请尝试运行:
brew install libxml2 libxslt
brew link --force libxml2 libxslt
最后安装你需要的nokogiri版本(基于你的Gemfile,它是1.6.0):
gem install nokogiri --version 1.6.0 -- --with-xml2-include=/usr/local/Cellar/libxml2/2.9.1/include/libxml2 \
--with-xml2-lib=/usr/local/Cellar/libxml2/2.9.1/lib \
--with-xslt-dir=/usr/local/Cellar/libxslt/1.1.28 \
--with-iconv-include=/usr/local/Cellar/libiconv/1.14/include \
--with-iconv-lib=/usr/local/Cellar/libiconv/1.14/lib
最后,再次捆绑,您应该能够毫无问题地运行规范。