500 Internal Server Error на различных маршрутах

Здравствуйте,

Я пытаюсь отладить повторяющуюся ошибку 500 Internal Server Error.
Сначала опишу конфигурацию (я знаю, что это не идеальный вариант и не рекомендуемый способ развёртывания с использованием Docker):

  • discourse 2.3.8
  • ruby 2.7.2 (используется snap)
  • redis-server 5:4.0.9-1ubuntu0.2 (пакет для Ubuntu)
  • postgresql 10.15 (на другом хосте)

Я отредактировал файл config/environments/production.rb, чтобы установить:

config.log_level = :debug

Пример вида ошибки, которую мы наблюдаем (вперемешку с кодом 200), можно найти здесь (также остальную часть, так как я не могу добавить более двух ссылок в одном посте): Ubuntu Pastebin

Я попытался определить, создаёт ли какой-то конкретный тип запросов ошибку 500, и действительно, прослеживается определённая закономерность (см. предыдущий пост на pastebin).

На данный момент я не могу найти способ продолжить отладку.
Я не совсем уверен, что это ошибка, и, к сожалению, у меня нет возможности воспроизвести проблему. Эти ошибки возникают случайно в течение дня, чередуясь с успешными ответами (200). Возможно, это проблема блокировок или конкуренции за ресурсы, но без дополнительных логов я не могу точно определить, где кроется проблема.

Ниже приведены текущие лимиты, используемые для процесса, на случай, если проблема в них: Ubuntu Pastebin

Буду очень признателен за любую помощь в том, как продолжить отладку.

С уважением,

Discourse 2.3.8 очень устарел и не будет работать с актуальной версией Ruby, например 2.7.2.

Мы знаем, что Discourse 2.5.6, 2.6 и 2.7 работают с Ruby 2.7.2.

Привет, Рафаэль,

Спасибо за ответ. Мы планируем обновиться и использовать поддерживаемый метод развёртывания, конечно, «вскоре».

Я в основном пытался узнать, как увеличить количество сообщений отладки, помимо изменения файла config/environments/production.rb.

Я видел, что можно использовать Logster (Discourse Logging Improvements), но в нашем случае это не даёт ничего полезного (мне не хватает секунд, чтобы понять, связано ли это с моей ошибкой 500), и слишком много ошибок, вероятно, связанных с несовпадением версий Ruby и Discourse.

Я попробую ещё немного покопаться, но я определённо настаиваю на обновлении «поскорее», а не «вскоре» :).

Спасибо!