Varios errores 503 después de la actualización

Acabamos de actualizar de la versión 3.0.6 a la 3.1.2 y estoy viendo muchos errores 503 principalmente en 3 puntos:

  • Muchos avatares no se cargan
  • Las cargas de imágenes solo funcionan a veces
  • También veo muchos errores para topics/timings

He revisado los registros del servidor y la mayoría de los 503 ni siquiera aparecen en production.log, pero nginx está lleno de ellos. Pensando que podría ser la limitación de velocidad de nginx, intenté no usar templates/web.ratelimited.template.yml pero no pareció ayudar. Todavía veo una gran cantidad de solicitudes respondidas con 503, principalmente user_avatars/show y, por lo que he podido averiguar, production.log no parece verlas en absoluto.

No noto nada malo en sidekiq. Sin embargo, /logs tuvo errores con:

'hijack user_avatars show ' still running after 90 seconds on db default, this process may need to be restarted!

pero estos fueron hace un par de horas y he reconstruido la instancia un par de veces desde entonces y no han vuelto a aparecer.

Esta instancia utiliza SSO, por lo que los avatares (url) provienen de allí. Estamos utilizando S3 para las imágenes.

Estoy un poco perplejo sobre qué está causando esto y me estoy quedando sin ideas.

¿Alguna pista sobre dónde/qué investigar?

¿Cuánta RAM tienes? ¿Has reiniciado el servidor recientemente?

El servidor tiene 16 GB y ha estado funcionando bien durante meses antes de la actualización.

Es una instancia de AWS y esta se inició hoy, poco antes de la actualización (los datos de Discourse están en volúmenes de EBS) para cambiar algunos parámetros no relacionados.

El tráfico de red (entrante y saliente) ha aumentado significativamente después de la actualización: los avatares parecen funcionar unos segundos después del 503 inicial, así que supongo que hay algún proceso ejecutándose la primera vez que se solicitan.

Sin embargo, no entiendo por qué las cargas de imágenes fallan aleatoriamente, así como el endpoint topics/timings.

No estoy seguro de si puede estar relacionado con esto:

¿Podría ser que este proceso de actualización del fondo de los avatares esté alcanzando el límite de tasa de 3500 PUT/s en AWS, causando que las cargas normales fallen mientras se actualizan los avatares? /cc @sam

1 me gusta

Posiblemente… pero debería aclararse. ¿Se ha aclarado ya?

1 me gusta

Sí, en parte.

La actualización se realizó la mañana del día 21. El tráfico de red entrante parece estar normalizándose ahora. El saliente sigue siendo más alto de lo habitual, pero supongo que es mientras las imágenes de avatar se están almacenando en caché. La cantidad de 503 a user_avatars/show es mucho menor ahora. Supongo que estos se irán resolviendo lentamente con el tiempo a medida que se procesen más imágenes de avatar.

Sin embargo, todavía vemos muchos errores 503 en los registros para principalmente otros dos puntos finales:

POST /topics/timings

Todavía muchos errores 503 a este punto final y algunos usuarios informan que los temas visitados no se están marcando como leídos. No he encontrado ninguna información al respecto, ya que la solicitud no parece registrarse en production.log en absoluto. Los /logs no muestran nada relacionado.

¿Dónde se podría depurar estos 503? ¿Hay algún otro registro del que no esté al tanto, o hay alguna forma de hacer que los registros sean más detallados (en un sistema de producción)?

POST /uploads.json?client_id=....

Todo lo que encuentro en production.log para estos errores 503 es algo como esto:

Extracto de production.log

> Started POST “/uploads.json?client_id=X” for x.x.x.x at 2023-10-24 10:24:55 +0000
Processing by UploadsController#create as JSON
Parameters: {“upload_type”=>“composer”, “relativePath”=>“null”, “name”=>“Screenshot 2023-10-24 at 11.22.32.png”, “type”=>“image/png”, “sha1_checksum”=>“d1f11731320437724003c3840c5dcc5f934ba25a”, “file”=>#<ActionDispatch::Http::UploadedFile:0x00007f3c5e3c9898 @tempfile=#Tempfile:/tmp/RackMultipart20231024-1991-b30vit.png, @content_type=“image/png”, @original_filename=“Screenshot 2023-10-24 at 11.22.32.png”, @headers=“Content-Disposition: form-data; name="file"; filename="Screenshot 2023-10-24 at 11.22.32.png"\r\nContent-Type: image/png\r\n”>, “client_id”=>“X”}
Rendered text template (Duration: 0.0ms | Allocations: 1)
Completed 503 Service Unavailable in 10ms (Views: 0.4ms | ActiveRecord: 0.0ms | Allocations: 5007)

Nuestros usuarios informan que reintentan unas cuantas veces hasta que funciona… Puedo reproducir el error de forma más o menos consistente si intento cargar (otro) archivo si ya hay uno cargándose. Cargar uno por uno parece menos propenso a ello por alguna razón.

# free -h
               total        used        free      shared  buff/cache   available
Mem:            15Gi       3.8Gi       621Mi       1.1Gi        10Gi        10Gi

# lscpu --parse=core | egrep -v # | sort -u | wc -l
2
UNICORN_WORKERS: 4

db_shared_buffers: "1024MB"