Erro interno do servidor 500 em várias rotas

Olá,

Estou tentando depurar erros recorrentes 500 Internal Server Error.
Primeiro, a configuração (sei que isso não é ideal e não é a implantação recomendada usando Docker):

  • Discourse 2.3.8
  • Ruby 2.7.2 (usando o snap)
  • Redis-server 5:4.0.9-1ubuntu0.2 (pacote do Ubuntu)
  • PostgreSQL 10.15 (em outro host)

Editei o arquivo config/environments/production.rb para definir

config.log_level = :debug

Uma amostra do tipo de erro que vemos (misturado com 200) pode ser encontrada aqui (assim como o restante, pois não posso colocar mais de dois links em uma postagem): Ubuntu Pastebin

Tentei determinar se um tipo específico de solicitação estava gerando o erro 500 e há, de fato, algum padrão (veja o pastebin anterior).

No momento, não estou conseguindo encontrar uma maneira de depurar mais a fundo.
Não tenho certeza se isso é um bug e, infelizmente, não tenho como reproduzir. Esses erros ocorrem aleatoriamente ao longo do dia, intercalados com respostas 200. Isso pode ser algum problema de bloqueio ou contenção, mas sem logs adicionais, não consigo realmente identificar onde está o problema.

Aqui estão os limites atualmente usados pelo processo, caso esse seja o problema: Ubuntu Pastebin

Qualquer ajuda sobre como continuar a depuração seria muito apreciada.

Abraços,

O Discourse 2.3.8 é muito antigo e não funcionará com uma versão recente do Ruby, como a 2.7.2.

Sabemos que o Discourse 2.5.6, 2.6 e 2.7 são compatíveis com o Ruby 2.7.2.

Olá Rafael,

Obrigado pela sua resposta. Temos o plano de fazer a atualização e usar o método de implantação suportado, com certeza, em breve.

Eu estava principalmente tentando descobrir como aumentar as mensagens de depuração, além de modificar o arquivo config/environments/production.rb.

Vi que o logster (Discourse Logging Improvements) poderia ser usado, mas ele não fornece nada útil no nosso caso (estou com falta dos segundos aqui, para ver se isso está relacionado ao meu erro 500 ou não) e há muitos erros, provavelmente relacionados a essa incompatibilidade entre as versões do Ruby e do Discourse.

Vou tentar investigar um pouco mais, mas com certeza estou pressionando para que a atualização ocorra “antes” do que “em breve” :).

Obrigado!