Desde anoche el sitio responde muy mal

Disculpas de antemano si esta es la categoría, ubicación, etc. incorrecta.

He tenido un sitio de Discourse funcionando durante unos 6 meses a través de un VPS de DigitalOcean sin muchos problemas. La página de administración indica que estoy en la versión 2.5.0.beta4. Desde anoche, la mayor parte del contenido de las páginas del sitio se niega a cargarse o tarda una cantidad de tiempo aparentemente absurda. Por ejemplo, puedo navegar a páginas como la página de inicio o /admin, pero ninguno de sus contenidos reales (publicaciones, gráficos de administración u otras pestañas) parece cargarse. He revisado las métricas del sistema y el uso de CPU se mantiene alrededor del 2%, y hay tráfico mínimo o uso de disco. Hay una base de usuarios de quizás 10 personas, ya que solo estoy probando/configurando el sitio. Considerando esto, este comportamiento parece muy extraño.

Los únicos plugins que tengo, según app.yml, son docker_manager y discourse-signatures. Soy el único usuario administrador, por lo que puedo confirmar que no se han realizado cambios en la configuración del sitio desde hace bastante tiempo.

Mi primera idea fue reiniciar la máquina en sí, y también he intentado actualizar manualmente usando git pull y ./launcher rebuild app. No estoy seguro de qué buscar durante ese proceso que indique si se están produciendo errores, pero la reconstrucción parece completarse y el sitio se puede acceder de nuevo después, aunque sigue en la versión 2.5.0.beta4. De manera similar, intentar acceder a la página /admin/update finalmente simplemente se agota el tiempo de espera. Todo esto parece bastante extraño porque el sitio es, en cierto modo, ‘funcional’; simplemente no sé lo suficiente sobre cómo opera para diagnosticar realmente nada. Encontré y puedo ejecutar discourse-doctor, pero no estoy seguro de qué logra: me envía correos electrónicos con éxito, etc.

Lo único que podría indicar un problema es que, anoche, recibí un correo electrónico del foro sobre una respuesta a una publicación, y cuando navego a la categoría ‘últimas publicaciones’ (después de que finalmente carga), no parece haber ninguna indicación de que la publicación exista, porque la vista general del hilo en ‘últimas’ no la lista como teniendo a ese usuario publicando por última vez. No puedo cargar el contenido de ninguna publicación, por lo que no hay forma de verificarlo con certeza. Así que podría haber algún error o discrepancia en la base de datos. No estoy seguro de cómo algo así podría ramificarse y causar que grandes secciones del sitio fallen al cargar, o si esto es un callejón sin salida que vale la pena perseguir.

¿Alguna idea sobre por dónde empezar a solucionar un problema como este? Muchas gracias si te tomaste el tiempo de leer : )

1 me gusta

¡Hola tuckie! ¡Bienvenido!

Parece que estás haciendo todo lo correcto.

Te recomiendo encarecidamente que actualices si puedes; estás bastante atrás respecto a la versión más reciente. Pero asegúrate de descargar una copia de seguridad primero para no perder nada.

¿Puedes iniciar sesión vía SSH y verificar si se te está acabando el almacenamiento?

df -h

Sea cual sea el caso, el almacenamiento es un buen primer punto de verificación, y este comando es útil para eliminar contenedores obsoletos que están ocupando espacio:

./launcher cleanup app

Luego, intenta reconstruir la aplicación a la versión más reciente. Avísanos si funciona esta vez y no muestra errores en la consola.

./launcher rebuild app
1 me gusta

Gracias por la rápida respuesta.

El sistema indica que hay aproximadamente 7.9 GB libres en la unidad montada en /dev/vda1, que está montada en /. No estoy muy familiarizado con cómo se utilizan las otras particiones en Ubuntu ni cómo podrían afectar el funcionamiento (¿Discourse está en un contenedor, verdad?). El resto parecen ser la partición de arranque, etc. En total, hay solo unas 30-40 publicaciones en el foro, ya que lo estoy probando, así que aparentemente no hay riesgo en ese sentido. La limpieza logró liberar unos 4 GB adicionales.

En cuanto a la reconstrucción de la aplicación, la he ejecutado varias veces. No veo mensajes de advertencia evidentes durante el proceso, pero al mismo tiempo, cuando termina, tampoco veo nada que indique “éxito”; no sabría qué líneas de error o advertencia buscar. Elimina el contenedor antiguo y luego ejecuta el contenedor de Docker, y luego termina. Acabo de ejecutarlo una vez más, y al conectarme al sitio, me indica que aún hay actualizaciones disponibles, pero tarda una cantidad increíblemente larga de tiempo en informar la versión en la que estoy (2.5.0.beta4) y la versión a la que actualizar.

Parte del problema es que parece que tampoco puedo usar las herramientas de administración debido a los tiempos de respuesta o a fallos al cargar. Por ejemplo, al navegar a la pestaña de copias de seguridad, solo se muestra la animación de carga indefinidamente. Por curiosidad, abrí la consola en la pestaña de copias de seguridad y el navegador parece intentar cargar archivos de JavaScript, fallando en todos ellos, uno a uno y lentamente.

Si hay alguna forma de trabajar con copias de seguridad a través de SSH, eso sería muy útil en este caso.

1 me gusta

Suena a un problema de red. ¿Estás usando Cloudflare? (si es así, desactiva la nube naranja).

Podrías tener un vecino ruidoso en DigitalOcean, así que podrías abrir un ticket con ellos.

No tiene sentido que digas que has realizado una reconstrucción pero la versión no haya cambiado. Pienso que necesitarías realizar la actualización a PostgreSQL 12. ¿No viste nada al respecto cuando hiciste la reconstrucción?

2 Me gusta

Estoy en DigitalOcean. Supongo que algo así podría estar ocurriendo, aunque no estoy seguro de que eso cause este problema de forma tan constante o durante tanto tiempo. Creo que una mejor manera de describir el problema con el sitio es que, por lo general, la página logra cargar la plantilla o «caparazón» de la misma, pero más allá de eso, la obtención de cualquier contenido real para las páginas parece seguir cargando indefinidamente.

En cuanto a la reconstrucción o el cambio de versión, es posible que esté ocurriendo un error de ese tipo, pero no conozco una buena manera de analizarlo, ni tampoco sé realmente qué debería buscar. Al ejecutar nuevamente la reconstrucción hace un momento, vi una línea que decía algo como «postgres instalado» mientras se desplazaba la salida. No estoy seguro de si esto se debe al trabajo que se realiza dentro de un contenedor o no, pero, por ejemplo, ./launcher rebuild app | grep 'postgres' no parece filtrar nada, ni tampoco ./launcher rebuild app > output.txt && grep 'postgres' output.txt. El archivo output.txt sí contiene información, pero aparentemente no todo; al menos, no termina de la misma manera que la salida real de la consola.

1 me gusta

Hola, espero no estar infringiendo ninguna norma sobre los ‘bumps’ u otras cosas, pero aún así me gustaría recibir ayuda con esto. En algún momento durante la semana pasada, las situaciones parecen haber empeorado. No puedo afirmar con certeza cuándo ocurrió esto, ya que no estuve trabajando en esto durante las vacaciones la semana pasada, pero ahora no puedo conectarme a mi sitio en absoluto. Aún puedo hacer ping a la dirección IP con éxito, y esa misma IP redirige al dominio correcto, así que parece que tampoco es un problema de servidores de nombres.

Al intentar acceder al sitio desde Firefox, ahora aparece lo siguiente:

El sitio en https://aregames.art/ ha experimentado una violación del protocolo de red que no puede repararse.

La página que intenta ver no se puede mostrar porque se detectó un error en la transmisión de datos.

No he podido encontrar mucha información útil en el inspector del navegador, ya que parece que no hay respuesta a la solicitud GET.

Desde que descubrí este nuevo problema, he:

  • ejecutado el proceso de reconstrucción varias veces,
  • actualizado Ubuntu a la versión 20.04,
  • vuelto a reconstruir el sitio.

El sitio en sí solo se utilizó para probar la plataforma durante aproximadamente un mes, y estoy dispuesto a aceptar que probablemente no fue una buena idea no mantener el software actualizado. También estoy dispuesto a reinstalar Discourse desde cero. Por supuesto, sería ideal encontrar una forma de solucionar esto preservando la configuración del sitio, los usuarios y las publicaciones, pero lo único que realmente necesito conservar es parte del CSS personalizado que escribí en el editor de temas. Si hay algún lugar donde esté almacenado y pueda copiarlo a una nueva instalación, me sería de gran ayuda. (Irresponsablemente) no tengo una versión actualizada almacenada localmente en ningún lugar.

Y, nuevamente, sobre el proceso de reconstrucción, todavía no sé exactamente cómo interpretarlo para detectar problemas. Por lo que puedo ver, se ejecuta y se completa sin solicitar ninguna entrada, y las últimas líneas después de terminar están relacionadas con el inicio del contenedor Docker con las configuraciones del archivo YAML. Entiendo que hay una diferencia entre que la reconstrucción se complete y que se complete correctamente, pero no estoy seguro de qué debo buscar ni dónde diagnosticar si algo está fallando durante este proceso.

1 me gusta

¿Está el servidor en línea? ¿Puedes acceder por SSH?

Si es así, reinicia el servidor y luego reconstruye Discourse.

Si no está en línea después de todo eso, pega aquí la salida de la reconstrucción y te ayudaremos.

1 me gusta

Sí, puedo acceder por SSH correctamente y así es como he ejecutado la reconstrucción cada vez. Y no, sigue siendo inaccesible después de una reconstrucción. Incluso después de una reconstrucción, veo que ifconfig muestra el contenedor de Docker con una dirección IP diferente a la del servidor, a la cual no puedo acceder desde el navegador web de mis sistemas. No estoy seguro de si eso es intencional o no. ./launcher rebuild app > output.txt solo parece mostrar una parte de la salida real de la consola, pero puedo incluirla también.

Ubuntu Pastebin (archivo de salida corto)
Ubuntu Pastebin (salida completa pegada desde la terminal)
Veo algunos mensajes de error de postgres indicando que la base de datos ‘discourse’ ya existe; ¿vale la pena investigar esto?

1 me gusta

¿Es correcta tu configuración de DNS?

host aregames.art 
aregames.art tiene la dirección 198.54.117.200
aregames.art tiene la dirección 198.54.117.199
aregames.art tiene la dirección 198.54.117.198
aregames.art tiene la dirección 198.54.117.197

¿Por qué hay tantas direcciones IP? ¿Cuál es la IP de tu servidor?

5 Me gusta

¡Vaya, esto fue realmente esclarecedor! Resulta que dejé caducar mi nombre de dominio, y casualmente eso ocurrió el mismo día en que empecé a tener estos problemas… Tenía pensado cambiar de proveedor, así que desactivé los pagos automáticos allí y, supongo, la fecha pasó sin que me diera cuenta. Parece que esas direcciones IP están relacionadas con algún tipo de servicio de estacionamiento para el dominio. Acabo de renovarlo, así que quizás vuelva a aplicar los registros correctos; no estoy seguro de cuánto suele tardar, ya que el host sigue mostrando esas IPs. Según la documentación, no debería poder conectarme directamente a través de la IP, así que supongo que no podré probar si esto ha funcionado durante un tiempo. Gracias por señalármelo.

Dicho esto, todavía estoy un poco confundido sobre los problemas iniciales que tenía. ¿Habría estado accediendo a una versión en caché de la página y, debido a los problemas con los servidores de nombres, las solicitudes de contenido no se estaban procesando? Algunas cosas, como incluso los mensajes en un hilo o la lista de publicaciones al abrir ‘últimas publicaciones’, terminaban cargando, aunque tardara mucho.

Actualización: host aregames.art, como mencionas arriba, parece resolverse nuevamente a la IP y al servidor de correo correctos. Pude confirmar con el script de configuración de Discourse que acepta que el DNS apunte a esa IP. Parece que el script de configuración también ejecutó la reconstrucción. Sin embargo, al navegar a la URL aparece un error de ‘servidor no encontrado’. Acceder directamente a la IP en el puerto 443 produce un error 400 de Nginx, lo cual parece ser un avance.

Otra edición: tuve que borrar la caché de mi navegador; el sitio cargó perfectamente desde una pestaña de incógnito. ¡Las cosas parecen estar funcionando de nuevo! Supongo que… pagar por mi sitio web fue la solución para arreglarlo aquí.

4 Me gusta

Sí, estabas utilizando la vista en caché.

Agregamos una nueva función en Discourse 2.6 para añadir una clase CSS específica al documento cuando estás en esta vista, pero aún no tenemos un elemento de interfaz de usuario predeterminado para ello.

Puedes leer más sobre esto en Offline Indicator

4 Me gusta

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.