#ruby-on-rails #ruby-on-rails-3.1
#ruby-on-rails #ruby-on-rails-3.1
Вопрос:
Я не уверен, что вызывает эту ошибку, и не уверен, как устранить проблему. Есть ли у кого-нибудь какие-либо рекомендации по поводу ошибки «сервера незаконных аппаратных инструкций rails» при запуске приложения Rails 3.1?
заранее спасибо, Дэн
Обновить:
Ошибка всегда воспроизводима и возникает только в проекте, который я пытаюсь обновить с Rails 3.0 до Rails 3.1 (RC1)
Я ничего не видел в журналах — за исключением кучи предупреждений:
DEPRECATION WARNING: class_inheritable_attribute is deprecated, please use class_attribute method instead. Notice their behavior are slightly different, so refer to class_attribute documentation first. (called from <class:Entity> at .../app/models/entity.rb:3)
Предупреждения получены из-за использования драгоценного камня с именем acts_as_audited. Если я прокомментирую это … это сработает. Я не думал, что предупреждение заставит rails сообщить об аппаратной ошибке.
Ответ №1:
Получил ту же ошибку, но я ее решил. Моя проблема была вызвана движком v8, установленным HomeBrew. Простое удаление этого решает проблему.
Ваша ситуация может быть иной, я предлагаю вам хороший способ ее проверить. Когда ваш сервер rails выйдет из строя, Mac OS X сохранит отчет о сбое как
~/Library/Logs/DiagnosticReports/ruby_*.crash
Затем вы можете проверить этот файл и найти описания аварийно завершенных потоков. В моей системе он сообщает:
Thread 4 Crashed:
0 libv8.dylib 0x00000001030a08f8 v8::internal::HandleScope::DeleteExtensions(v8::internal::Isolate*) 24
Комментарии:
1.Спасибо, просмотр отчетов о диагностике мне помог. Для меня, хотя мне нужно было
brew install v8
тогдаgem uninstall libv8
gem install libv8 -v '3.16.14.13' -- --with-system-v8
решить проблему с libv8 при запускеrails s
Ответ №2:
Воспроизводима ли ошибка? Если да, то вы можете подозревать программное обеспечение. Возможно, какая-то библиотека или сам ruby были недавно обновлены?
В любом случае было бы неплохо проверить компьютер на наличие ошибок памяти и проблем с диском. Может быть, в системных журналах есть какая-то информация?
Вы не сказали, на какой системе вы работаете, но в любом случае — убедитесь, что оборудование в порядке, убедитесь, что базовая система в порядке, проверьте, нет ли в вашем коде бесконечных циклов или подобных ошибок, проверьте, существует ли ошибка все еще в разных версиях Rails или ruby.
Это для начала. 🙂
Комментарии:
1. Я тоже наткнулся на эту ошибку сегодня утром. Причина в рекурсивном вызове для обновления активной записи. глупый я.