Estoy ejecutando una instancia autoalojada de Discourse en https://forum.embeetle.com.
Ayer, la actualización del navegador con un solo clic falló, así que inicié sesión en el servidor y probé ./launcher rebuild app.
Esto también falló, con el siguiente error:
I, [2024-08-01T20:46:09.837292 #1] INFO -- :
I, [2024-08-01T20:46:09.837631 #1] INFO -- : cd /var/www/discourse & su discourse -c 'yarn install --frozen-lockfile & yarn cache clean'
warning Resolution field "unset-value@2.0.1" is incompatible with requested version "unset-value@^1.0.0"
error Error: https://registry.yarnpkg.com/date-fns/-/date-fns-3.6.0.tgz: ESOCKETTIMEDOUT
at ClientRequest.<anonymous> (/usr/share/yarn/lib/cli.js:142037:19)
at Object.onceWrapper (node:events:631:28)
at ClientRequest.emit (node:events:517:28)
at TLSSocket.emitRequestTimeout (node:_http_client:847:9)
at Object.onceWrapper (node:events:631:28)
at TLSSocket.emit (node:events:529:35)
at Socket._onTimeout (node:net:598:8)
at listOnTimeout (node:internal/timers:569:17)
at process.processTimers (node:internal/timers:512:7)
Después de esto, el comando parece colgarse (no pasa nada durante al menos 10 minutos), así que lo maté y lo intenté de nuevo. Mismo resultado.
No hay ningún problema de red: desde dentro del contenedor docker (./launcher enter app), ejecutar wget https://registry.yarnpkg.com/date-fns/-/date-fns-3.6.0.tgz devuelve éxito en menos de 0.1 segundos.
Verifiqué este problema similar: Error during the update ESOCKETTIMEDOUT registry.yarnpkg.com - #4 by jericson La sugerencia allí es aumentar el tiempo de espera editando /var/discourse/templates/web.template.yml.
Desafortunadamente, esa ruta no existe en mi instalación (desde dentro del contenedor docker, no hay /var/discourse; hay una carpeta var/www/discourse que es el directorio de trabajo predeterminado al entrar en la aplicación, pero esa no tiene una subcarpeta templates; busqué web.template.yml pero no pude encontrarla en ninguna parte.
Tampoco estoy muy seguro de que aumentar el tiempo de espera solucione el problema, dada la descarga muy rápida de https://registry.yarnpkg.com/date-fns/-/date-fns-3.6.0.tgz.
Terminé restaurando una copia de seguridad de hace unos días, con una versión anterior de discourse, y copiando la versión más reciente de discourse/shared en ella. Esto funciona, por lo que el foro está en funcionamiento nuevamente.
¿Hay algo malo con la última versión en la rama principal? De hecho, intenté ejecutar ./launcher rebuild app de nuevo, y falla de nuevo de la misma manera, así que tuve que restaurar el foro de la copia de seguridad nuevamente.