Acabei de ter a experiência mais estranha ao fazer um reinício simples da minha instância Amazon Lightsail.
Fiz o reinício… esperei a reinicialização.
Apareceu a tela de erro “502 Gateway Error - Nginx” em algumas páginas (que presumo não estarem em cache). Esperei um pouco…
Executei um rebuild do Discourse via shell.
Apareceu uma mensagem de erro informando que o rebuild falhou.
Usei o ./discourse-doctor — também falhou.
Desativei plugins não oficiais e refiz o rebuild — também falhou.
Pensei que estava ferrado. Enquanto fazia mais pesquisas, verifiquei o fórum novamente e descobri que ele estava funcionando normalmente. O que não faz absolutamente nenhum sentido, considerando que a resposta imediata da documentação do Discourse foi: AVISO! Aplicativo nem sequer está rodando!
Minha teoria é que isso pode estar mais relacionado aos limites de burst da Amazon do que a qualquer outra coisa. Como o reinício pode ter sobrecarregado o servidor, causando esses problemas iniciais com os erros 502, mas certamente o rebuild levou meu servidor a 70-80% dos limites de burst, e talvez não houvesse recursos do sistema disponíveis para executar os scripts de rebuild?
Então, minha pergunta final é (já que isso tem sido um problema recorrente no processo de rebuild de atualizações): existe alguma maneira de limitar a carga dos scripts de atualização no servidor e evitar que ele entre em pânico? Quero dizer, esta é uma instância com 8 GB de RAM, então não é tão fraca, etc.
Tentarei outra atualização em breve e atualizarei aqui. Não salvei o arquivo de log e executar atualizações consome bastante minha zona de burst (especialmente após executá-la 3 vezes), então precisei esperar um dia ou mais para recuperar meus níveis de burst.
Seeding default
*** Empacotando ativos. Isso levará um tempo ***
$ RUBY_GC_MALLOC_LIMIT_MAX=20971520 RUBY_GC_OLDMALLOC_LIMIT_MAX=20971520 RUBY_GC_HEAP_GROWTH_MAX_SLOTS=50000 RUBY_GC_HEAP_OLDOBJECT_LIMIT_FACTOR=0.9 bundle exec rake themes:update assets:precompile
Atualizando Dark...
Falha ao atualizar Dark
about.json contém valores inválidos: A versão máxima do Discourse é inválida
Agora meu fórum está completamente fora do ar e apresentando erro 500.
Por que isso aconteceu? Eu achava que a atualização só substituiria o fórum atual, que estava funcionando, assim que o processo fosse concluído e não enfrentaria problemas?
O componente de tema está obsoleto e o Discourse se recusa a usá-lo.
Mas se você executar ./launcher rebuild app, o container será desligado para construir o novo (porque está usando os mesmos arquivos de banco de dados). Se a construção falhar, você precisará reiniciar o container para colocá-lo em funcionamento novamente.
Sim, notei que a atualização na verdade estava concluída em todos os outros elementos. Assim que excluí os componentes Dark e Alternate Logos, tudo foi atualizado na tela de atualização.