Muchos errores HTTP 502 y 429 después de actualizar a 3.4.0.beta1-dev

Versión de Discourse: 3.4.0.beta1-dev (bf3d8a0a94)

Actualizado ayer y tuve que deshabilitar la minificación de Cloudflare como se sugirió aquí:

Sin embargo, desde entonces, muchos usuarios (incluyéndome a mí) han experimentado varias instancias de 502 (Bad Gateway) y 529 (Too Many Requests).

En un intento por aliviar el problema, también seguí esta guía:

Sin embargo, nada parece haber cambiado en cuanto a la frecuencia de esos errores.

La actualización ocurrió ayer alrededor de las 11 a.m. Realicé una reconstrucción completa porque también quería deshabilitar un plugin.

Tengo una instancia de Prometheus+Grafana que monitorea el servidor y Discourse, pero el servidor parece estar bien en términos de carga:

Métricas de Discourse (la caída en las métricas alrededor de las 11 a.m. de ayer es la reconstrucción que detuvo el contenedor):

Nuevamente, no veo ningún patrón extraño.

Sin embargo, esta es la consola del navegador de hace un minuto, después de intentar enviar un mensaje privado a un usuario:

Si hay algo más que pueda proporcionar (registros de cualquier tipo), por favor, pregunte. Gracias.

Además, si sirve de ayuda, muchas operaciones “en segundo plano” en tiempo real también se están retrasando claramente.

Por ejemplo, los temas que ya se han leído no se registran como leídos.

Solo para asegurarme, ¿realizaste este paso también y luego reconstruiste, correcto?

1 me gusta

Sí, lo siento, olvidé añadir que ya había agregado la plantilla de Cloudflare al archivo app.yml hace mucho tiempo. Siempre hemos estado detrás de Cloudflare, desde el primer día.

Esta es una parte del app.yml, tenemos nuestros propios certificados renovados de forma independiente, por eso el de letsencrypt está comentado:

## este es el contenedor Docker de Discourse todo en uno y autónomo
##
## Después de realizar cambios en este archivo, DEBE reconstruir
## /var/discourse/launcher rebuild app
##
## ¡TENGA *MUCHO* CUIDADO AL EDITAR!
## ¡LOS ARCHIVOS YAML SON EXTREMADAMENTE SENSIBLES A ERRORES DE ESPACIO EN BLANCO O ALINEACIÓN!
## visite http://www.yamllint.com/ para validar este archivo según sea necesario

templates:
  - "templates/postgres.template.yml"
  - "templates/redis.template.yml"
  - "templates/web.template.yml"
  - "templates/web.ratelimited.template.yml"
## Descomente estas dos líneas si desea agregar Lets Encrypt (https)
  - "templates/web.ssl.template.yml"
#  - "templates/web.letsencrypt.ssl.template.yml"
  - "templates/cloudflare.template.yml"

## ¿qué puertos TCP/IP debe exponer este contenedor?
## Si desea que Discourse comparta un puerto con otro servidor web como Apache o nginx,
## consulte https://meta.discourse.org/t/17247 para obtener detalles
expose:
  - "80:80"   # http
  - "443:443" # https

[...]

Extracto de /logs

Veo que esto se ha movido a Installation, solo para aclarar, esto no es una instalación nueva.

Esta instancia de Discourse ha estado funcionando desde marzo de 2023 y nunca había tenido este problema específico.

Ha habido un problema en el pasado con algunos 529, pero se ha resuelto desde entonces.

Creo que todavía encaja en

4 Me gusta

Parece que tu PostgreSQL está sobrecargado. Parece que la mayor parte de tu RAM está inactiva, intentaría ajustar la base de datos para que la utilice y ver cómo van las cosas después de eso.

1 me gusta

¿Cómo se ve /sidekiq/queues?
¿Desde qué versión estabas actualizando?

1 me gusta

Desde la última versión estable del 6 de mayo, v3.2.1 a la última test-passed.

Colas de Sidekiq:

La sección de trabajos Dead es esta, pero parece ser el mismo trabajo desde el principio de los tiempos.

Entradas más antiguas:

Los que están en reintento parecen ser el mismo trabajo que se reintenta una y otra vez.

Pero… ¿por qué de repente? ¿Después de una simple actualización de la capa de aplicación?

Estoy usando el plugin de exportación de Prometheus de Discourse.
Si agregara un exportador de PostgreSQL como otro contenedor en la VM, ¿sería posible permitirle acceder a las métricas en la instalación de PostgreSQL de Discourse?

¿Alguna indicación más precisa sobre cómo ajustar la base de datos para Discourse?

No estoy seguro si está relacionado, pero ciertamente comenzó a suceder después de la actualización, al hacer clic en el botón de descartar en la pestaña de no leídos, siempre se devuelve un 503.

Bueno, como parece que no hay solución, intentaré volver a la última versión stable, ya que se supone que es… ya sabes, estable.

Cruzo los dedos para que no haya una dependencia central que rompa el proceso de compilación, como la última vez.

No puedes volver de tests-passed a estable, a menos que haya una versión estable superior disponible. Así que la próxima oportunidad que tendrás será cuando salga la 3.4.0, calculo que será alrededor de Navidad o después…

Además, tendrás que aguantarte algún día.

1 me gusta

Bueno, acabo de hacerlo. Parece que funciona. De todos modos, no nos importan ninguna de las funciones de 3.3.0.

Veré si todavía hay problemas. Lo peor que puede pasar es que sigamos recibiendo una plétora de 429 y 502, no es un gran cambio.

Agradecería instrucciones sobre cómo configurar Postgres en Discourse para que tenga más recursos disponibles, sin embargo.

Editar: Se implementó la versión 3.2.5. El sistema parece estable.

Por favor, recuérdanos que lo hiciste cuando publiques tu próximo problema :wink:

1 me gusta

Siempre menciono la versión en la que estoy cuando publico un problema.
Creo que es importante recordar que, precisamente porque se presenta como software de código abierto, los problemas críticos deberían ser considerados en lugar de escribir cosas como esta:

Este es otro ejemplo de personas que se esfuerzan y cambian a la versión “estable” encontrando algunos errores que se quedan en el olvido porque no es la versión desplegada más popular.

Cuando stable debería significar “estable”, no “legado”.
El hecho de que las dependencias principales como discourse docker se publiquen sin un sistema de etiquetas debería ser suficiente para ser un poco más humilde al responder a los usuarios que informan de un problema.

Estaba hablando de mencionar el hecho de que degradaste cuando técnicamente no podías.

Creo que es importante recordar… que no trabajo para Discourse y te estoy ayudando en mi propio tiempo, así que no aprecio tu tono, ni soy capaz de hacer nada con tus comentarios.

2 Me gusta

2 Me gusta