Ошибка сегментации — Ruby 1.8.7 и Rails 3.1.3

Я использую хорошее время ruby ​​1.8.7, и я использую эту версию ruby ​​с rails 3.0.x начиная с выпуска этой версии rails. И я никогда не получал ошибку ошибки сегментации. Но теперь, после запуска разработки ruby ​​1.8.7 с рельсами 3.1.3, когда я запускаю webrick и просматриваю приложение, у меня появляется следующая ошибка:

/usr/lib/ruby/gems/1.8/gems/rack-1.3.5/lib/rack/utils.rb:380: [BUG] Segmentation fault
ruby 1.8.7 (2010-06-23 patchlevel 299) [i686-linux]

Ошибка очень непостоянная, иногда бывает с httputils вебрика и иногда со стойкой. Возможно, ошибка имеет какое-то отношение к конвейеру ресурсов, потому что ошибки происходят до какого-то процесса, подобного этому:

Started GET "/assets/wymeditor/wymeditor/lang/zh_cn.js?body=1" for 127.0.0.1 at Wed Dec 28 09:22:23 -0200 2011
cache: [GET /assets/wymeditor/wymeditor/lang/zh_cn.js?body=1] stale, valid, store
Served asset /wymeditor/wymeditor/lang/zh_cn.js - 304 Not Modified (1ms)


Started GET "/assets/wymeditor/wymeditor/plugins/embed/jquery.wymeditor.embed.js?body=1" for 127.0.0.1 at Wed Dec 28 09:22:23 -0200 2011

Кто-нибудь может помочь мне в этом вопросе. С этого момента я благодарю за любую помощь.

Спасибо

Журнал разработки:

Started GET "/assets/wymeditor/wymeditor/lang/he.js?body=1" for 127.0.0.1 at Wed Dec 28 11:57:36 -0200 2011
cache: [GET /assets/wymeditor/wymeditor/lang/he.js?body=1] stale, valid, store
Served asset /wymeditor/wymeditor/lang/he.js - 304 Not Modified (0ms)
Started GET "/assets/wymeditor/wymeditor/lang/hr.js?body=1" for 127.0.0.1 at Wed Dec 28 11:57:36 -0200 2011
cache: [GET /assets/wymeditor/wymeditor/lang/hr.js?body=1] stale, valid, store
Served asset /wymeditor/wymeditor/lang/hr.js - 304 Not Modified (1ms)
Started GET "/assets/wymeditor/wymeditor/lang/hu.js?body=1" for 127.0.0.1 at Wed Dec 28 11:57:36 -0200 2011
cache: [GET /assets/wymeditor/wymeditor/lang/hu.js?body=1] stale, valid, store
Served asset /wymeditor/wymeditor/lang/hu.js - 304 Not Modified (1ms)
Started GET "/assets/wymeditor/wymeditor/lang/it.js?body=1" for 127.0.0.1 at Wed Dec 28 11:57:36 -0200 2011
cache: [GET /assets/wymeditor/wymeditor/lang/it.js?body=1] stale, valid, store
Served asset /wymeditor/wymeditor/lang/it.js - 304 Not Modified (1ms)
Started GET "/assets/wymeditor/wymeditor/lang/nb.js?body=1" for 127.0.0.1 at Wed Dec 28 11:57:36 -0200 2011
cache: [GET /assets/wymeditor/wymeditor/lang/nb.js?body=1] stale, valid, store
Served asset /wymeditor/wymeditor/lang/nb.js - 304 Not Modified (1ms)
Started GET "/assets/wymeditor/wymeditor/lang/nl.js?body=1" for 127.0.0.1 at Wed Dec 28 11:57:36 -0200 2011
cache: [GET /assets/wymeditor/wymeditor/lang/nl.js?body=1] stale, valid, store
Served asset /wymeditor/wymeditor/lang/nl.js - 304 Not Modified (4ms)
Started GET "/assets/wymeditor/wymeditor/lang/pl.js?body=1" for 127.0.0.1 at Wed Dec 28 11:57:36 -0200 2011
cache: [GET /assets/wymeditor/wymeditor/lang/pl.js?body=1] stale, valid, store
Served asset /wymeditor/wymeditor/lang/pl.js - 304 Not Modified (0ms)
Started GET "/assets/wymeditor/wymeditor/lang/pt-br.js?body=1" for 127.0.0.1 at Wed Dec 28 11:57:36 -0200 2011
cache: [GET /assets/wymeditor/wymeditor/lang/pt-br.js?body=1] stale, valid, store
Served asset /wymeditor/wymeditor/lang/pt-br.js - 304 Not Modified (3ms)
Started GET "/assets/wymeditor/wymeditor/lang/pt.js?body=1" for 127.0.0.1 at Wed Dec 28 11:57:36 -0200 2011
cache: [GET /assets/wymeditor/wymeditor/lang/pt.js?body=1] stale, valid, store
Served asset /wymeditor/wymeditor/lang/pt.js - 304 Not Modified (1ms)
Started GET "/assets/wymeditor/wymeditor/lang/ru.js?body=1" for 127.0.0.1 at Wed Dec 28 11:57:36 -0200 2011
/usr/lib/ruby/gems/1.8/gems/rack-cache-1.1/lib/rack/cache/metastore.rb:232: [BUG] Segmentation fault
ruby 1.8.7 (2010-06-23 patchlevel 299) [i686-linux]
Abortado

Abortado по-английски прервано

Список всех моих камней:

  • actionmailer (3.1.3)
    • actionpack (3.1.3)
    • активная модель (3.1.3)
    • активная запись (3.1.3)
    • активный ресурс (3.1.3)
    • активная поддержка (3.1.3)
    • арель (2.2.1)
    • bcrypt-рубин (3.0.1)
    • брИ18н (3.0.4)
    • бразильские рельсы (3.0.4)
    • брцеп (3.0.4)
    • бркпфкнпж (3.0.4)
    • брдата (3.0.4)
    • брдинхейро (3.0.4)
    • брхелпер (3.0.4)
    • брнумерос (3.0.4)
    • brstring (3.0.4)
    • строитель (3.0.0)
    • упаковщик (1.0.15)
    • капибара (1.1.1)
    • дочерний процесс (0.2.2)
    • кофейные рейлинги (3.1.1)
    • кофейный скрипт (2.2.0)
    • источник сценария кофе (1.1.3)
    • столбец (0.3.4)
    • огурец (1.1.0)
    • огурцы-рельсы (1.1.1)
    • database_cleaner (0.6.7)
    • разработать (1.4.8)
    • diff-lcs (1.1.3)
    • стрекоза (0.9.8)
    • эрубис (2.7.0)
    • исполняемые файлы (1.2.12)
    • factory_girl (2.2.0)
    • factory_girl_rails (1.3.0)
    • фф (1.0.9)
    • корнишон (2.5.1)
    • поход (1.2.1)
    • i18n (0.6.0)
    • jquery-рельсы (1.0.19)
    • json (1.6.3)
    • json_pure (1.6.1)
    • линейный кэш (0,46)
    • почта (2.3.0)
    • mime-типы (1.17.2)
    • multi_json (1.0.4)
    • mysql2 (0.3.11)
    • нокогири (1.5.0)
    • orm_adapter (0.0.5)
    • полиглот (0.3.3)
    • стойка (1.3.5)
    • стойка-кэш (1.1)
    • стоечный (0.8.3)
    • стойка-ssl (1.3.2)
    • стеллажное испытание (0.6.1)
    • рельсы (3.1.3)
    • рельсы (3.1.3)
    • грабли (0.9.2.2)
    • rbx-требуется-относительный (0.0.5)
    • рдок (3.11)
    • rspec (2.6.0)
    • rspec-ядро (2.6.4)
    • rspec-ожидания (2.6.0)
    • rspec-моки (2.6.0)
    • rspec-рельсы (2.6.1)
    • рубиновая отладка (0.10.4)
    • рубиновая отладочная база (0.10.4)
    • рубизип (0.9.4)
    • дерзкий (3.1.11)
    • sass-рельсы (3.1.5)
    • селен-клиент (1.2.18)
    • селен-вебдрайвер (2.8.0)
    • звездочки (2.0.3)
    • термин-ансиколор (1.0.7)
    • Тор (0.14.6)
    • наклон (1.3.3)
    • верхушка дерева (1.4.10)
    • цинфо (0.3.31)
    • углиф (1.1.0)
    • надзиратель (1.0.6)
    • паутина (0.7.3)
    • wymeditor (0.5.0.rc2)
    • xpath (0.1.4)

Версия Ruby: ruby ​​1.8.7 (исправление 23 июня 2010 г., уровень 299) Arch: [i686-linux]

Единственная трассировка стека, которую я получаю:

/usr/lib/ruby/1.8/webrick/httpserver.rb:50
while timeout > 0
(rdb:2) n
[2011-12-28 16:22:52] ERROR #<Class:0xb6614868>: execution expired
   /usr/lib/ruby/1.8/timeout.rb:64:in `timeout'
   /usr/lib/ruby/1.8/timeout.rb:101:in `timeout'
   /usr/lib/ruby/1.8/webrick/httprequest.rb:326:in `_read_data'
   /usr/lib/ruby/1.8/webrick/httprequest.rb:337:in `read_line'
   /usr/lib/ruby/1.8/webrick/httprequest.rb:240:in `read_header'
   /usr/lib/ruby/1.8/webrick/httprequest.rb:88:in `parse'
   /usr/lib/ruby/1.8/webrick/httpserver.rb:56:in `run'
   /usr/lib/ruby/1.8/webrick/server.rb:173:in `start_thread'
   /usr/lib/ruby/1.8/webrick/server.rb:162:in `start'
   /usr/lib/ruby/1.8/webrick/server.rb:162:in `start_thread'
   /usr/lib/ruby/1.8/webrick/server.rb:95:in `start'
   /usr/lib/ruby/1.8/webrick/server.rb:92:in `each'
   /usr/lib/ruby/1.8/webrick/server.rb:92:in `start'
   /usr/lib/ruby/1.8/webrick/server.rb:23:in `start'
   /usr/lib/ruby/1.8/webrick/server.rb:82:in `start'
   /usr/lib/ruby/gems/1.8/gems/rack-1.3.5/lib/rack/handler/webrick.rb:13:in `run'
   /usr/lib/ruby/gems/1.8/gems/rack-1.3.5/lib/rack/server.rb:265:in `start'
   /usr/lib/ruby/gems/1.8/gems/railties-3.1.3/lib/rails/commands/server.rb:70:in `start'
   /usr/lib/ruby/gems/1.8/gems/railties-3.1.3/lib/rails/commands.rb:54
   /usr/lib/ruby/gems/1.8/gems/railties-3.1.3/lib/rails/commands.rb:49:in `tap'
   /usr/lib/ruby/gems/1.8/gems/railties-3.1.3/lib/rails/commands.rb:49
   script/rails:6:in `require'
   script/rails:6
/usr/lib/ruby/1.8/webrick/httpserver.rb:51
break if IO.select([sock], nil, nil, 0.5)

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

В этот момент я отключил конвейер активов, coffeescript и sass. И у меня больше не было ошибки, но у меня нет больше этих функций.


person Emygdio    schedule 28.12.2011    source источник
comment
Нет трассировки стека? Волшебный шар, давай...   -  person Reactormonk    schedule 28.12.2011
comment
также нужны номера версий файлов гема, которые изменились с момента обновления   -  person prusswan    schedule 28.12.2011
comment
Извините, в финале поста есть все жемчужины приложения.   -  person Emygdio    schedule 28.12.2011
comment
В логе особо нечего сказать, ошибка возникает внезапно, без объяснений, и вебрик умирает:   -  person Emygdio    schedule 28.12.2011
comment
@ user1018568: Вам действительно следует запустить свое приложение в gdb, чтобы получить трассировку стека сбоя (желательно с символами отладки), иначе мы ничем не сможем вам помочь.   -  person Niklas B.    schedule 28.12.2011
comment
Ошибка очень трудно получить хорошую трассировку стека. У меня была построчная отладка сервера webrick и стойки. У меня есть хороший охват теста в моем приложении, и ошибка не выбрасывалась на уровне контроллера и т. Д. Я потратил более 4 часов, пытаясь получить хорошую трассировку стека, потому что ошибка только что появилась в режиме отладки, когда я прошел строку по строке с командой «n», когда я нажимаю «c», ошибка возникает точно так же, когда я просматриваю приложение с помощью браузера, без трассировки стека. В основном ошибка возникла, когда сервер rails попытался получить активы, см. Конец сообщения   -  person Emygdio    schedule 29.12.2011


Ответы (1)


В примечании от guides.rubyonrails.org говорится:

Обратите внимание, что в Ruby 1.8.7 p248 и p249 есть ошибки маршалинга, приводящие к сбою Rails 3.0. Однако в Ruby Enterprise Edition они исправлены с версии 1.8.7-2010.02. Что касается версии 1.9, то Ruby 1.9.1 непригоден для использования, потому что в Rails 3.0 он явно segfault, поэтому, если вы хотите использовать Rails 3 с 1.9.x, перейдите на 1.9.2 для плавного перехода.

Мне очень повезло с 1.9.2, и rvm позволяет легко переключаться между несколькими версиями ruby. Не могли бы вы попробовать это?

person Greg Silcox    schedule 05.01.2012
comment
Привет! Большое спасибо за вашу помощь. Я и моя компания соглашаемся, что мы закроем первый выпуск этого программного обеспечения с отключенным конвейером активов. Когда мы закончим этот первый релиз, мы проведем много тестов с другой версией ruby ​​и до другого препроцессора JavaScript. Спасибо за подсказку о ruby ​​1.9.2. Начнем тест с ruby ​​1.9.2. Когда у меня будет какой-то прогресс в этом, я опубликую его. Спасибо - person Emygdio; 14.01.2012