O front-end da minha instância do Discourse está completamente em branco e não carrega após a nova atualização. Isso não é bom e estou um pouco em pânico, pois os usuários estão insatisfeitos. O backend parece estar funcionando.
Isso aconteceu após a atualização mais recente hoje, em um droplet da Digital Ocean executando um contêiner. Usei o launcher para reconstruir o aplicativo.
Qualquer ajuda é muito apreciada.
O erro no console diz:
app.js:31
Uncaught TypeError: Cannot read properties of undefined (reading 'registerAsyncHelper') at s.callback (vendor-suffix.js:58:1)
at s.exports (loader.js:106:1)
at s._reify (loader.js:143:1)
at s.reify (loader.js:130:1)
at s.exports (loader.js:104:1)
at s._reify (loader.js:143:1)
at s.reify (loader.js:130:1)
at s.exports (loader.js:104:1)
at s._reify (loader.js:143:1)
at s.reify (loader.js:130:1)
at s.exports (loader.js:104:1)
at requireModule (loader.js:27:1)
at n._prepareInitializer (app.js:24:1)
at app.js:81:1
at Array.forEach (<anonymous>)
at n.start (app.js:73:1)
at HTMLDocument.<anonymous> (start-app.js:4:1)
at discourse-boot.js:30:1
at discourse-boot.js:31:1
Ugh…era um plugin…não tenho certeza de qual é, mas depois de investigar um pouco aqui, suspeitei que esse poderia ter sido um problema…removi cakeday, signatures, data explorer, discourse-video-upload e encryption. Vou introduzi-los um de cada vez em uma data posterior e ver se consigo identificar o culpado. Mas, por enquanto, o aplicativo está de volta e não vou mexer nele
Experiência terrível. Sentindo-me bastante culpado agora…provavelmente deveria ter um processo de clone de staging para essas atualizações no futuro. Lição aprendida. Ou, no mínimo, sempre farei um snapshot antes da atualização para poder restaurar em caso de falha.
O problema é o Discourse encrypt. Você pode corrigi-lo colocando-o por último no seu arquivo yml e selecionando o commit de antes de ele ser quebrado pela primeira vez (a verificação de assinatura foi quebrada outro dia), assim:\n\n\n - git clone https://github.com/discourse/docker-manager.git\n ... então seus outros plugins ...\n - git clone https://github.com/discourse/discourse-encrypt.git\n - cd discourse-encrypt \u0026\u0026 git checkout 12639de\n\n\nComo você pode ver, coloquei o plugin Discourse encrypt por último, caso os comandos cd e git checkout afetem comandos subsequentes (o que eu não acho que fariam).\n\nE sim, esse é o hash do commit da última versão que definitivamente funciona bem.\n\nMeu site agora está funcionando bem novamente. E o Discourse Encrypt tem os tiques verdes novamente.
@sam Vou me candidatar amanhã para a vaga de Engenheiro Full Stack. Pensando bem, enquanto estou correndo atrás de plugins quebrados, vou tentar me juntar à equipe e trabalhar em plugins
Eu apenas enviaria uma mensagem direta para você, mas esta instância não me permite.
Por favor, não deixe essa configuração ativa por muito tempo - sua instância não receberá atualizações futuras do plugin Encrypt. Isso muito provavelmente causará problemas no futuro.
Estamos cientes do problema de verificação de assinatura, e estamos trabalhando em uma correção e já enviamos uma correção.
No entanto, este erro Ember.Test é inesperado. @Mycobee, você pode confirmar qual versão do Discourse você está executando? Como você executou a atualização? Através da interface /admin/upgrade?
Sim, isso é vitalmente importante e eu esqueci de mencionar (eram quase 4 da manhã na minha hora quando escrevi isso e eu tinha acabado de fazer as coisas funcionarem novamente e pensei em dar uma olhada aqui para ver se mais alguém tinha o mesmo problema). Esta é apenas uma correção temporária para fazer as coisas funcionarem novamente. Obrigado pelo lembrete @david.
Essa correção não funcionou para mim quando atualizei tudo às 00:00 UTC esta manhã (dez horas e meia atrás). Eu só atualizei minha instância então porque vi que a verificação de assinatura havia sido corrigida. Então tive que fazer a correção temporária descrita acima. É viável que minha atualização usual não tenha captado o código mais recente por algum motivo?
Você ainda estava vendo o problema de verificação de assinatura ? Ou você encontrou o problema Ember.Test?
Além disso, acabei de verificar com a equipe e parece que identificamos o problema Ember.Test e teremos uma correção em breve. Atualizaremos aqui quando estiver disponível.
Eu estava recebendo uma página inicial em branco e tive que desativar todos os plugins (em modo de segurança) para que o site carregasse. Faço atualizações semanais por volta das 9:00 UTC às segundas-feiras e esta foi uma atualização extra para corrigir o problema de verificação de assinatura. No entanto… houve muitas outras alterações detectadas também, é claro. E a versão foi atualizada para 2.9.0beta3 nesse período também.
Como você já terá visto (mas talvez alguém ainda não tenha), aqui está a diferença para o Discourse Encrypt entre a versão que estou executando agora e a versão mais recente até esta mensagem.
Além disso, não demorou muito até quase 4 da manhã para consertar. Estava tudo bem pouco antes das 2 da manhã, mas então tive que contar às pessoas o que havia acontecido (a maioria dos nossos usuários está nos EUA).
@david Atualizei para a versão 2.9.0.beta3, o que causou o problema.
Em relação ao processo de atualização, eu geralmente faço isso através da interface /admin/upgrade. Este caso foi diferente.
Eu apenas atualizei o docker-manager pela interface de atualização. Depois disso, tive que lidar com outras coisas e voltei ao caminho /admin/upgrade algumas horas depois para concluir o processo de atualização.
Fui recebido com uma página de texto dizendo para ir ao host, mudar para o diretório /var/discourse, fazer git pull e reconstruir o aplicativo com ./launcher… Foi o que eu fiz, e então o caos se seguiu.
Enquanto o estresse e os nervos estavam altos, encontrei algo neste fórum sobre TypeError não capturado estar relacionado a um plugin, então removi tudo o que não era essencial dos plugins de app.yml e reconstruí o contêiner. Nesse ponto, o aplicativo Ember começou a funcionar novamente.