Error interno del servidor 500 en varias rutas

Hola,

Estoy intentando depurar errores 500 Internal Server Error recurrentes.
Primero, la configuración (sé que no es ideal y no es la implementación recomendada usando Docker):

  • discourse 2.3.8
  • ruby 2.7.2 (usando el snap)
  • redis-server 5:4.0.9-1ubuntu0.2 (paquete de Ubuntu)
  • postgresql 10.15 (en otro host)

Edité el archivo config/environments/production.rb para establecer:

config.log_level = :debug

Una muestra del tipo de error que vemos (mezclado con 200) se encuentra aquí (también el resto, ya que no puedo incluir más de dos enlaces en una publicación): Ubuntu Pastebin

Intenté determinar si un tipo específico de solicitud estaba generando el error 500 y, de hecho, hay algún tipo de patrón (ver el pastebin anterior).

Por ahora, no logro encontrar una forma de depurar más a fondo.
No estoy muy seguro de que esto sea un error y, lamentablemente, no tengo forma de reproducirlo. Estos errores ocurren aleatoriamente durante el día, entre respuestas 200. Podría tratarse de algún problema de bloqueo o contención, pero sin registros adicionales, realmente no puedo determinar dónde reside el problema.

Aquí están los límites actualmente utilizados para el proceso, por si este fuera el problema: Ubuntu Pastebin

Agradecería mucho cualquier ayuda sobre cómo continuar con la depuración.

Saludos,

Discourse 2.3.8 es muy antiguo y no funcionará con una versión reciente de Ruby como 2.7.2.

Sabemos que Discourse 2.5.6, 2.6 y 2.7 son compatibles con Ruby 2.7.2.

Hola Rafael,

Gracias por tu respuesta. Planeamos actualizar y utilizar el método de implementación compatible “pronto”.

Principalmente, estaba tratando de averiguar cómo aumentar los mensajes de depuración sin modificar el archivo config/environments/production.rb.

Vi que Logster (Discourse Logging Improvements) podría usarse, pero no proporciona nada útil en nuestro caso (me falta la información de los segundos para ver si esto está relacionado con mi error 500) y hay demasiados errores, probablemente relacionados con esta discrepancia entre las versiones de Ruby y Discourse.

Intentaré investigar un poco más, pero definitivamente estoy presionando para que la actualización sea “más pronto” que “pronto” :).

¡Gracias!