Как получить ошибку 500 на продакшене

December 1, 2014

Когда к новому проекту подключаешь трекер ошибок, Airbrake или Honeybadger (кстати говорят, что можно еще Skylight или Opbeat, но я не пробовал), хочется проверить, что все настроено правильно.

Можно дождаться когда кто-нибудь внесет в продакшен дефект, но я обычно добавляю какой-нибудь секретный раут, вызывающий 500:

# config/routes.rb
get 'some_500_secret_url', to: proc { raise '500' }

На самом деле к рауте привязано полноценное rack-приложение, которое по канонам должно выглядеть хотя бы так:

get 'some_500_secret_url', to: proc { |env|
  [200, {'Content-Type' => 'text/html'}, ['Hello 500']]
}

Но для тестирование работы эксепшенов достаточно просто бросить рантайм-ошибку.

Теперь можно вызывать 500 на продакшене столько раз, сколько необходимо.

Update: Алексей показал как вызвать 500 на любом урле Рейлс-сайта, для этого достаточно добавить ?%28t%B3odei%29 в конец. Я проверил, получается ArgumentError: invalid byte sequence in UTF-8, очень забавно, на вызов Ктулху похоже :-)

comments powered by Disqus