Ошибка сегментации Rails при запуске сервера? - PullRequest
15 голосов
/ 06 августа 2010

Попытка привести в порядок мою среду rails 3, и я продолжаю сталкиваться с ошибкой, которую я не могу обойти.Любая помощь будет принята с благодарностью!

Вот проблема:

Patrick-Scotts-MacBook-Pro:~ PJS$ cd hope_app
Patrick-Scotts-MacBook-Pro:hope_app PJS$ rails server
/Users/PJS/.rvm/gems/ruby-1.9.2-rc2/gems/sqlite3-ruby-1.3.1/lib/sqlite3/sqlite3_native.bundle: [BUG] Segmentation fault
ruby 1.9.2dev (2010-07-11 revision 28618) [x86_64-darwin10.4.0]

-- control frame ----------
c:0026 p:-541019732 s:0075 b:0075 l:000074 d:000074 TOP   
c:0025 p:---- s:0073 b:0073 l:000072 d:000072 CFUNC  :require
c:0024 p:0029 s:0069 b:0069 l:000065 d:000068 BLOCK  /Users/PJS/.rvm/gems/ruby-1.9.2-    rc2/gems/sqlite3-ruby-1.3.1/lib/sqlite3.rb:6
c:0023 p:0035 s:0066 b:0066 l:000065 d:000065 TOP    /Users/PJS/.rvm/gems/ruby-1.9.2- rc2/gems/sqlite3-ruby-1.3.1/lib/sqlite3.rb:2
c:0022 p:---- s:0064 b:0064 l:000063 d:000063 FINISH
c:0021 p:---- s:0062 b:0062 l:000061 d:000061 CFUNC  :require
c:0020 p:0026 s:0058 b:0058 l:000039 d:000057 BLOCK  /Users/PJS/.rvm/gems/ruby-1.9.2-rc2/gems/bundler-1.0.0.rc.2/lib/bundler/runtime.rb:64
c:0019 p:---- s:0055 b:0055 l:000054 d:000054 FINISH
c:0018 p:---- s:0053 b:0053 l:000052 d:000052 CFUNC  :each
c:0017 p:0080 s:0050 b:0050 l:000039 d:000049 BLOCK  /Users/PJS/.rvm/gems/ruby-1.9.2-rc2/gems/bundler-1.0.0.rc.2/lib/bundler/runtime.rb:62
c:0016 p:---- s:0045 b:0045 l:000044 d:000044 FINISH
c:0015 p:---- s:0043 b:0043 l:000042 d:000042 CFUNC  :each
c:0014 p:0046 s:0040 b:0040 l:000039 d:000039 METHOD /Users/PJS/.rvm/gems/ruby-1.9.2-rc2/gems/bundler-1.0.0.rc.2/lib/bundler/runtime.rb:51
c:0013 p:0021 s:0036 b:0036 l:000035 d:000035 METHOD /Users/PJS/.rvm/gems/ruby-1.9.2-   rc2/gems/bundler-1.0.0.rc.2/lib/bundler.rb:114
c:0012 p:0079 s:0032 b:0032 l:000031 d:000031 TOP    /Users/PJS/hope_app/config/application.rb:7
c:0011 p:---- s:0030 b:0030 l:000029 d:000029 FINISH
c:0010 p:---- s:0028 b:0028 l:000027 d:000027 CFUNC  :require
c:0009 p:0016 s:0024 b:0024 l:000015 d:000023 BLOCK  /Users/PJS/.rvm/gems/ruby-1.9.2-rc2/gems/railties-3.0.0.rc/lib/rails/commands.rb:28
c:0008 p:---- s:0021 b:0021 l:000020 d:000020 FINISH
c:0007 p:---- s:0019 b:0019 l:000018 d:000018 CFUNC  :tap
c:0006 p:0468 s:0016 b:0016 l:000015 d:000015 TOP    /Users/PJS/.rvm/gems/ruby-1.9.2-rc2/gems/railties-3.0.0.rc/lib/rails/commands.rb:27
c:0005 p:---- s:0012 b:0012 l:000011 d:000011 FINISH
c:0004 p:---- s:0010 b:0010 l:000009 d:000009 CFUNC  :require
c:0003 p:0061 s:0006 b:0006 l:001598 d:0013a8 EVAL   script/rails:6
c:0002 p:---- s:0004 b:0004 l:000003 d:000003 FINISH
c:0001 p:0000 s:0002 b:0002 l:001598 d:001598 TOP   
---------------------------
-- Ruby level backtrace information ----------------------------------------
script/rails:6:in `<main>'
script/rails:6:in `require'
/Users/PJS/.rvm/gems/ruby-1.9.2-rc2/gems/railties-3.0.0.rc/lib/rails/commands.rb:27:in `<top (required)>'
/Users/PJS/.rvm/gems/ruby-1.9.2-rc2/gems/railties-3.0.0.rc/lib/rails/commands.rb:27:in `tap'
/Users/PJS/.rvm/gems/ruby-1.9.2-rc2/gems/railties-3.0.0.rc/lib/rails/commands.rb:28:in `block in <top (required)>'
/Users/PJS/.rvm/gems/ruby-1.9.2-rc2/gems/railties-3.0.0.rc/lib/rails/commands.rb:28:in `require'
/Users/PJS/hope_app/config/application.rb:7:in `<top (required)>'
/Users/PJS/.rvm/gems/ruby-1.9.2-rc2/gems/bundler-1.0.0.rc.2/lib/bundler.rb:114:in `require'
/Users/PJS/.rvm/gems/ruby-1.9.2-rc2/gems/bundler-1.0.0.rc.2/lib/bundler/runtime.rb:51:in `require'
/Users/PJS/.rvm/gems/ruby-1.9.2-rc2/gems/bundler-1.0.0.rc.2/lib/bundler/runtime.rb:51:in `each'
/Users/PJS/.rvm/gems/ruby-1.9.2-rc2/gems/bundler-1.0.0.rc.2/lib/bundler/runtime.rb:62:in `block in require'
/Users/PJS/.rvm/gems/ruby-1.9.2-rc2/gems/bundler-1.0.0.rc.2/lib/bundler/runtime.rb:62:in `each'
/Users/PJS/.rvm/gems/ruby-1.9.2-rc2/gems/bundler-1.0.0.rc.2/lib/bundler/runtime.rb:64:in `block (2 levels) in require'
/Users/PJS/.rvm/gems/ruby-1.9.2-rc2/gems/bundler-1.0.0.rc.2/lib/bundler/runtime.rb:64:in `require'
/Users/PJS/.rvm/gems/ruby-1.9.2-rc2/gems/sqlite3-ruby-1.3.1/lib/sqlite3.rb:2:in `<top (required)>'
/Users/PJS/.rvm/gems/ruby-1.9.2-rc2/gems/sqlite3-ruby-1.3.1/lib/sqlite3.rb:6:in `rescue in <top (required)>'
/Users/PJS/.rvm/gems/ruby-1.9.2-rc2/gems/sqlite3-ruby-1.3.1/lib/sqlite3.rb:6:in `require'

-- C level backtrace information -------------------------------------------

Ответы [ 8 ]

39 голосов
/ 21 февраля 2012

Согласно этому сообщению , я переустановил гем sqlite3 и проблема исчезла:

gem uninstall sqlite3
gem install sqlite3

Мои версии программного обеспечения:

% ruby -v
ruby 1.9.2p180 (2011-02-18 revision 30909) [x86_64-darwin11.2.0]
% rails -v
Rails 3.2.1
5 голосов
/ 05 февраля 2013

Я обнаружил, что закрытие моей оболочки полностью (закрытие всех окон и затем щелчок правой кнопкой мыши на значке терминала в доке и выбор закрытия) и затем перезапуск терминала устранили эту проблему.

Я создавал иУничтожение, использование и изменение наборов гемов на некоторое время, прежде чем я увидел эту проблему.Я подозреваю, что все запуталось, было все.

2 голосов
/ 03 ноября 2012

У меня была похожая проблема с 1.9.3. Я должен был:

  1. удалить sqlite3 и переустановить
  2. Для дополнительной меры удалите грабли и переустановите их.

Работает сейчас.

1 голос
/ 28 апреля 2012

У меня была проблема, когда я все еще получал ошибку сегмента после удаления и переустановки гема sqlite3 и пакета homebrew sqlite3. Оказалось, что хотя rvm использовал ruby ​​1.9.3, rake все еще указывал на установку 1.8.7, которая идет со львом.

$rake db:create
/Users/jessesanford/.rvm/gems/ruby-1.9.3-p125/gems/sqlite3-1.3.6/lib/sqlite3/sqlite3_native.bundle: [BUG] Segmentation fault
ruby 1.8.7 (2010-01-10 patchlevel 249) [universal-darwin11.0]

Я не уверен, как rake был установлен в библиотеку ruby ​​gems для 1.9.3 с заголовком сценария shebang, указанным в 1.8.7, но, независимо от причины, переустановка rake его исправила, и теперь все идет гладко.

1 голос
/ 18 июля 2011

Я получил эту ошибку, когда дважды объявил группу «test» в своем Gemfile. Как только я избавился от второго объявления, больше нет ошибки сегментации.

1 голос
/ 01 марта 2011

У меня была похожая проблема - похоже, Rails пытается использовать другую версию Ruby (1.9.2dev вместо 1.9.2-rc2). Вы можете подтвердить это с помощью

head -1 `which rails`

Измените эту первую строку или переустановите камень с помощью gem uninstall rails && gem install rails.

(P.S. спасибо Venj за решение здесь )

1 голос
/ 01 января 2011

Я также столкнулся с той же проблемой в sqlite3-ruby 1.3.2 После неоднократного удаления установки и удаления того же sqlite3-ruby

я окончательно полностью удалил rvm dir

rm -rf /usr/local/lib/rvm /usr/local/bin/{r*,gem-ruby-1.9.2-p136,irb-ruby-1.9.2-p136,testrb-ruby-1.9.2-p136} /usr/local/rvm

, затем сноваустановил,

Я подозреваю,

libsqlite3-0 libsqlite3-dev sqlite3

все три должны быть установлены до установки rvm, потому что те же шаги, которые я выполнил на другой машине, работают нормально.

Да, это не правильное решение.

1 голос
/ 06 августа 2010

У меня точно такие же версии, как и у вас, и я этого не вижу. Но я не на MacBook Pro.

Трудно сказать, является ли это проблемой Ruby 1.9.2 (поскольку она все еще не считается достаточно стабильной, чтобы быть официально выпущенной) или это действительно ошибка в геме Sqlite 3. Точно такая же ошибка была , о которой сообщалось против гема для немного более ранней версии Ruby 1.9.2.

Вы можете попробовать вернуться к Sqlite версии 1.3.0 или обратно к Ruby 1.9.1 временно, пока проблема не разрешится сама собой. Едва ли это удовлетворительный ответ, но, по крайней мере, вы снова можете быть продуктивным.

...