Уэбрик умер из-за незаконных инструкций 4

С тех пор, как я переключился на разработку RoR на базе Mac, я иногда вижу, что Webrick умирает после простой печати «Недопустимой инструкции 4».

OSX 10.7.2, 10.7.3 и теперь 10.7.4

рубин 1.9.2p290

rails 3.2.2 и различные другие версии, начиная с 3.1

До сих пор это было довольно безобидно, я просто нажал клавишу со стрелкой вверх, нажал Enter и перезапустил сервер, и все в порядке.

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

Только что это произошло, но на этот раз, похоже, Webrick каким-то образом заклинил, и после перезапуска Webrick он не отвечал, мне пришлось перезагрузиться, чтобы очистить состояние. Так что это начинает выглядеть менее безобидно и больше похоже на надвигающуюся проблему производительности разработки.

Кто-нибудь из других разработчиков Mac видел это?


person RadBrad    schedule 20.05.2012    source источник
comment
Спасибо за информацию, никогда даже не понимал, что означает «принятие», теперь я знаю!   -  person RadBrad    schedule 21.05.2012
comment
Черт, я знал, что отвечать на свои вопросы было плохой идеей, теперь боги Stackoverflow.com затмевают солнце! Серьезно, здесь, на побережье Южной Калифорнии, это прерывистые облака, и облака смещают видимое затмение, оно смещается с 75% до 25% затемнения с каждой минутой, очень странный эффект!   -  person RadBrad    schedule 21.05.2012
comment
Вы когда-нибудь получали решение этой проблемы? Я вижу ту же проблему в Thin и webrick в приложении rails 3.2.8 под ruby ​​1.9.3p286.   -  person zippy    schedule 05.11.2012
comment
Нет решения, все еще происходит. Я просто занимаюсь этим.   -  person RadBrad    schedule 05.11.2012


Ответы (2)


Есть ли у вас подобные проблемы с использованием серверов приложений, отличных от Webrick? Я рекомендую разрабатывать с тем же сервером приложений, который вы используете для развертывания, который в данном случае выглядит как Passenger.

person x1a4    schedule 21.05.2012
comment
Как это отвечает на вопрос? Честно говоря, с самого начала это не было настоящим вопросом, но другие люди, столкнувшиеся с этой проблемой (например, я), найдут эту страницу в результатах поиска и не будут знать, что делать с этим решением. - person Spencer Williams; 08.12.2012
comment
Это окольный путь, поэтому вот более четкий ответ: НИКОГДА не используйте вебрик. Если вы не разрабатываете на том же сервере приложений, с которым развертываете, вы делаете это неправильно. - person x1a4; 08.12.2012
comment
Для меня проблема с незаконными инструкциями случайна, но всегда вызывается изменением кода рельсов. Что касается меня, я хочу тестировать локально, поэтому я просто продолжаю использовать Webrick. Я никогда не сталкивался с ситуацией, когда из-за разработки на Webrick что-то глючило в продакшн. Единственная реальная проблема заключается в том, что время от времени вебрик падает, он просто заходит в консоль, нажимает стрелку вверх, входит, перезапускает сервер и продолжает. Это не имеет большого значения для меня. - person RadBrad; 10.12.2012

Я столкнулся с этой проблемой после реализации прицела на одной из моих моделей.

scope :list_only, lambda { show_on_list }

(где show_on_list — метод экземпляра). После перезаписи метода на

scope :list_only, where("SomeSQLHere")

(где я использовал SQL в SomeSQLHere) он работал нормально. Я понимаю, что это не относится к тому, что означает «Недопустимая инструкция 4», но, может быть, проблема связана с какой-то плохой областью?

person Spencer Williams    schedule 08.12.2012