Hola,
Estoy experimentando un problema extraño con mi Discourse donde los errores 502 ocurren solo para una cuenta de usuario específica (administrador) después de iniciar sesión, mientras que:
-
Los usuarios anónimos pueden acceder al sitio normalmente
-
Otras cuentas de usuario pueden iniciar sesión y usar el sitio normalmente
-
El problema solo aparece para una cuenta específica (cuenta de administrador)
Entorno
-
Discourse instalado a través de la configuración oficial de Docker
-
Proxy inverso / CDN: ArvanCloud (similar a Cloudflare)
-
El acceso a Internet internacional está restringido / inestable (GitHub y algunos servicios externos no son accesibles)
-
Discourse no se ha actualizado durante ~1 mes
Síntomas
Al acceder al sitio:
-
Si abro el sitio en modo privado/incógnito → el sitio se carga bien
-
Si inicio sesión con mi cuenta principal → inmediatamente obtengo 502 Bad Gateway
-
Si inicio sesión con otra cuenta → todo funciona bien
Por lo tanto, el problema es claramente específico del usuario y se activa después de la autenticación.
Registros de errores de CDN (ArvanCloud)
Aparecen dos errores principales:
1. Tiempo de espera agotado de upstream al leer upstream
upstream timed out (110: Connection timed out) while reading upstream
Las URL afectadas son principalmente activos, por ejemplo:
-
/assets/browser-detect-*.js
-
/assets/plugins/automation-*.js
-
/assets/plugins/discourse-gamification-*.js
-
/assets/plugins/discourse-lazy-videos-*.js
2. Conexión cerrada prematuramente por upstream
upstream prematurely closed connection while reading response header from upstream
Por ejemplo:
-
/stylesheets/common_theme_rtl_*.css
-
/theme-javascripts/*.js
Entonces, el CDN está esperando una respuesta de Discourse, pero el backend se agota el tiempo de espera o cierra la conexión.
Lo que encontré en el backend
En los rastreos de pila de Rails, la ruta del error apunta a:
-
current_user_serializer.rb -
discourse_updates.rb -
método:
DiscourseUpdates.has_unseen_features?
Lo que sugiere que el bloqueo/tiempo de espera se produce mientras se comprueban los anuncios de nuevas funciones para los usuarios que han iniciado sesión.
Dado que solo un usuario se ve afectado, esto sugiere fuertemente que el problema se activa durante la serialización específica del usuario, no durante la representación global del sitio.
Agradecería cualquier orientación.
Muchas gracias.