Какие-либо известные причины ошибок «сервера незаконных аппаратных инструкций rails» в Rails 3.1 RC?

#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. Я тоже наткнулся на эту ошибку сегодня утром. Причина в рекурсивном вызове для обновления активной записи. глупый я.