Estou executando uma instância auto-hospedada do Discourse em https://forum.embeetle.com.
Ontem, a atualização de um clique do navegador falhou, então fiz login no servidor e tentei ./launcher rebuild app.
Isso também falhou, com o seguinte erro:
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)
Depois disso, o comando parece travar (nada acontece por pelo menos 10 minutos), então eu o interrompi e tentei novamente. Mesmo resultado.
Não há problema de rede: de dentro do contêiner docker (./launcher enter app), executar wget https://registry.yarnpkg.com/date-fns/-/date-fns-3.6.0.tgz retorna com sucesso em menos de 0,1 segundos.
Verifiquei este problema semelhante: Error during the update ESOCKETTIMEDOUT registry.yarnpkg.com - #4 by jericson A sugestão lá é aumentar o tempo limite editando /var/discourse/templates/web.template.yml.
Infelizmente, esse caminho não existe na minha instalação (de dentro do contêiner docker, não há /var/discourse; há uma pasta var/www/discourse que é o diretório de trabalho padrão ao entrar no aplicativo, mas que não tem uma subpasta templates; procurei por web.template.yml, mas não consegui encontrá-la em lugar nenhum.
Também não estou muito confiante de que aumentar o tempo limite resolveria o problema, dada a rápida download de https://registry.yarnpkg.com/date-fns/-/date-fns-3.6.0.tgz.
Acabei restaurando um backup de alguns dias atrás, com uma versão mais antiga do discourse, e copiando a versão mais recente de discourse/shared para ele. Isso funciona, então o fórum está funcionando novamente.
Há algo errado com a versão mais recente no branch principal? Na verdade, tentei executar ./launcher rebuild app novamente, e ele falha novamente da mesma maneira, então tive que restaurar o fórum do backup novamente.