Olá, quando tento me conectar à interface de administração, recebo uma tela em branco. Não consigo fazer atualizações, por exemplo, mesmo sendo um administrador.
O que devo fazer?
Obrigada pela ajuda.
Muriel
Você pode tentar o modo de segurança. Você também pode fazer uma atualização pela linha de comando.
Atualização: Fiz um bootstrap adequado, destruí e iniciei com uma configuração de 2 contêineres e agora os números de versão relatados foram atualizados e a UI de Administração está renderizando novamente.
O restante da postagem permanece para posteridade.
Estou experimentando o que pode ser um problema semelhante. A interface de Administração carrega, mas exibe apenas as abas no topo e a seção de conteúdo principal está em branco:
Logs do Console do Navegador
Revisando os logs do console do navegador, vejo erros como:
[Error] Error: VM BUG: Target must be set before attempting to jump
vendor.xxxxx-xxxx.js
Unhandled Promise Rejection: Error: Could not find module `discourse/lib/decorators` imported from `discourse/plugins/docker_manager/discourse/routes/update`
Error Stack
[Error] Error: VM BUG: Target must be set before attempting to jump
(anonymous function) (chunk.6994431508d4f7ecb4c3.d41d8cd9.js:119:131956)
evaluate (chunk.6994431508d4f7ecb4c3.d41d8cd9.js:119:69428)
_execute (chunk.6994431508d4f7ecb4c3.d41d8cd9.js:119:111383)
execute (chunk.6994431508d4f7ecb4c3.d41d8cd9.js:119:111253)
rerender (chunk.6994431508d4f7ecb4c3.d41d8cd9.js:119:115153)
(anonymous function) (chunk.6994431508d4f7ecb4c3.d41d8cd9.js:119:252217)
tx (chunk.6994431508d4f7ecb4c3.d41d8cd9.js:119:105883)
_renderRoots (chunk.6994431508d4f7ecb4c3.d41d8cd9.js:119:252117)
_renderRootsTransaction (chunk.6994431508d4f7ecb4c3.d41d8cd9.js:119:252504)
_revalidate (chunk.6994431508d4f7ecb4c3.d41d8cd9.js:119:252982)
invoke (chunk.6994431508d4f7ecb4c3.d41d8cd9.js:119:153517)
flush (chunk.6994431508d4f7ecb4c3.d41d8cd9.js:119:152599)
flush (chunk.6994431508d4f7ecb4c3.d41d8cd9.js:119:154477)
_end (chunk.6994431508d4f7ecb4c3.d41d8cd9.js:119:159527)
end (chunk.6994431508d4f7ecb4c3.d41d8cd9.js:119:156653)
_runExpiredTimers (chunk.6994431508d4f7ecb4c3.d41d8cd9.js:119:160801)
[Error] Unhandled Promise Rejection: Error: Could not find module `discourse/lib/decorators` imported from `discourse/plugins/docker_manager/discourse/routes/update`
(anonymous function) (vendor.6f1929e16c84d825f1e134b0a5a6bf6d-ed21b08557694a2386531fb8b5bd479da7fe4ec9cffd9278c49f382c5e7bc3a4.js:1:1310)
h (vendor.6f1929e16c84d825f1e134b0a5a6bf6d-ed21b08557694a2386531fb8b5bd479da7fe4ec9cffd9278c49f382c5e7bc3a4.js:1:1311)
(anonymous function) (vendor.6f1929e16c84d825f1e134b0a5a6bf6d-ed21b08557694a2386531fb8b5bd479da7fe4ec9cffd9278c49f382c5e7bc3a4.js:1:3065)
h (vendor.6f1929e16c84d825f1e134b0a5a6bf6d-ed21b08557694a2386531fb8b5bd479da7fe4ec9cffd9278c49f382c5e7bc3a4.js:1:1375)
requireModule (vendor.6f1929e16c84d825f1e134b0a5a6bf6d-ed21b08557694a2386531fb8b5bd479da7fe4ec9cffd9278c49f382c5e7bc3a4.js:1:599)
_extractDefaultExport (chunk.6994431508d4f7ecb4c3.d41d8cd9.js:105:269780)
resolveOther (chunk.6994431508d4f7ecb4c3.d41d8cd9.js:105:266326)
resolve (chunk.6994431508d4f7ecb4c3.d41d8cd9.js:105:266888)
(anonymous function) (chunk.6994431508d4f7ecb4c3.d41d8cd9.js:119:262092)
resolve (chunk.6994431508d4f7ecb4c3.d41d8cd9.js:119:262185)
resolve (chunk.6994431508d4f7ecb4c3.d41d8cd9.js:119:262275)
c (chunk.6994431508d4f7ecb4c3.d41d8cd9.js:119:260192)
(anonymous function) (chunk.6994431508d4f7ecb4c3.d41d8cd9.js:119:258815)
getRoute (chunk.6994431508d4f7ecb4c3.d41d8cd9.js:111:56849)
fetchRoute (chunk.6994431508d4f7ecb4c3.d41d8cd9.js:119:267571)
_getQPMeta (chunk.6994431508d4f7ecb4c3.d41d8cd9.js:111:63399)
_hydrateUnsuppliedQueryParams (chunk.6994431508d4f7ecb4c3.d41d8cd9.js:111:64113)
_prepareQueryParams (chunk.6994431508d4f7ecb4c3.d41d8cd9.js:111:63271)
normaliseQueryParams (chunk.6994431508d4f7ecb4c3.d41d8cd9.js:111:38898)
_generateURL (chunk.6994431508d4f7ecb4c3.d41d8cd9.js:111:38990)
eA (chunk.6994431508d4f7ecb4c3.d41d8cd9.js:119:202925)
(anonymous function) (chunk.6994431508d4f7ecb4c3.d41d8cd9.js:119:49065)
X (chunk.6994431508d4f7ecb4c3.d41d8cd9.js:119:140358)
T (chunk.6994431508d4f7ecb4c3.d41d8cd9.js:119:49044)
eM (chunk.6994431508d4f7ecb4c3.d41d8cd9.js:119:80191)
flush (chunk.6994431508d4f7ecb4c3.d41d8cd9.js:119:79868)
(anonymous function) (chunk.6994431508d4f7ecb4c3.d41d8cd9.js:119:70930)
evaluate (chunk.6994431508d4f7ecb4c3.d41d8cd9.js:119:65312)
evaluateSyscall (chunk.6994431508d4f7ecb4c3.d41d8cd9.js:119:111047)
evaluateInner (chunk.6994431508d4f7ecb4c3.d41d8cd9.js:119:110609)
evaluateOuter (chunk.6994431508d4f7ecb4c3.d41d8cd9.js:119:110528)
next (chunk.6994431508d4f7ecb4c3.d41d8cd9.js:119:121496)
_execute (chunk.6994431508d4f7ecb4c3.d41d8cd9.js:119:121359)
handleException (chunk.6994431508d4f7ecb4c3.d41d8cd9.js:119:112232)
handleException (chunk.6994431508d4f7ecb4c3.d41d8cd9.js:119:114799)
throw (chunk.6994431508d4f7ecb4c3.d41d8cd9.js:119:111583)
evaluate (chunk.6994431508d4f7ecb4c3.d41d8cd9.js:119:68993)
_execute (chunk.6994431508d4f7ecb4c3.d41d8cd9.js:119:111383)
execute (chunk.6994431508d4f7ecb4c3.d41d8cd9.js:119:111253)
rerender (chunk.6994431508d4f7ecb4c3.d41d8cd9.js:119:115153)
(anonymous function) (chunk.6994431508d4f7ecb4c3.d41d8cd9.js:119:252217)
tx (chunk.6994431508d4f7ecb4c3.d41d8cd9.js:119:105883)
_renderRoots (chunk.6994431508d4f7ecb4c3.d41d8cd9.js:119:252117)
_renderRootsTransaction (chunk.6994431508d4f7ecb4c3.d41d8cd9.js:119:252504)
_revalidate (chunk.6994431508d4f7ecb4c3.d41d8cd9.js:119:252982)
invoke (chunk.6994431508d4f7ecb4c3.d41d8cd9.js:119:153517)
flush (chunk.6994431508d4f7ecb4c3.d41d8cd9.js:119:152599)
flush (chunk.6994431508d4f7ecb4c3.d41d8cd9.js:119:154477)
_end (chunk.6994431508d4f7ecb4c3.d41d8cd9.js:119:159527)
(anonymous function) (chunk.6994431508d4f7ecb4c3.d41d8cd9.js:119:155980)
Processo de Upgrade (2 contêineres)
Originalmente, comecei a ter o problema após tentar concluir o upgrade de dentro da UI de Administração do Discourse, onde fui informado que precisava atualizar o Docker Manager primeiro.
Após atualizar o Docker Manager, comecei a ter o problema, então fiz SSH na máquina e fiz uma atualização manual (2 contêineres) apenas para web_only:
cd /var/discourse
git pull
./launcher bootstrap web_only
./launcher stop web_only && ./launcher start web_only
^^^^^^
⚠️ Isso está errado! Use destroy conforme abaixo. ⚠️
Curiosamente, o caminho /about.json ainda mostra que estou executando 3.4.0.beta4-dev, que é o que eu pensei que tinha começado, já que o e-mail original era para um upgrade de 3.4.0.beta4-dev para 3.5.0.beta1.
Verifiquei o log do git e parece que pelo menos o discourse_docker está no commit mais recente 3715498fc188d60c0b579443383c4e973cf26f59 no momento em que escrevo isto.
Modo de Segurança Funciona
Eu não estava ciente do modo de segurança, mas aparentemente o problema não ocorre se eu desativar TODOS os plugins do lado do cliente.
Desativar apenas personalizações de plugins não oficiais do lado do cliente não resolve o problema, pois tentei cada combinação para estreitar o escopo.
| Opção | Resultado |
|---|---|
no_unofficial_plugins |
|
no_plugins |
|
no_themes |
Desativar docker_manager não ajuda
Tentei comentar o plugin docker_manager em hooks/after_code, depois reconstruir o contêiner web_only + parar e iniciar, mas a mensagem de erro do lado do cliente mencionada acima ainda permanece.
Isso introduz outra mensagem de erro onde visitar a página de Administração de this.class.create não é uma função, mas talvez isso seja esperado com o plugin docker_manager subjacente desativado para este teste:
loader.js:247 Uncaught (in promise) Error: Could not find module `discourse/lib/decorators` imported from `discourse/plugins/docker_manager/discourse/routes/update`
at loader.js:247:1
at h (loader.js:258:1)
at u.findDeps (loader.js:168:1)
at h (loader.js:262:1)
at requireModule (loader.js:24:1)
at f.get (composer.js:874:1)
at push.98673._extractDefaultExport (composer.js:874:1)
at push.98673.resolveOther (composer.js:874:1)
at push.98673.resolve (composer.js:874:1)
at n.i [as getRoute] (upload-debugging.js:25:1)
at p._getQPMeta (upload-debugging.js:25:1)
index.js:78 Uncaught TypeError: this.class.create is not a function
at n.i [as getRoute] (upload-debugging.js:25:1)
at p._getQPMeta (upload-debugging.js:25:1)
Novamente, usar o modo de segurança com no_plugins contorna o problema temporariamente.
Eu estava me baseando na memória nos comandos para a atualização mínima de tempo de inatividade de 2 contêineres e, aparentemente, minha memória não pode ser confiada! ![]()
Após usar o comando correto para destruir e depois iniciar o novo contêiner após o bootstrap, vejo que as versões foram atualizadas e a Interface de Administração está funcionando como esperado.
Você atualizou o contêiner de dados? Você deveria, mas primeiro, veja Atualização do PostgreSQL 15. Ou, se você realmente odeia ler, apenas execute ./laumcher rebuild data duas vezes e você ficará bem. Então você precisará destruir, iniciar o contêiner web (caso contrário, ele procurará o contêiner de dados antigo que você terá destruído).
Ainda não, mas obrigado por se preocupar!
Eu já estava considerando configurar um novo servidor mais robusto, então estava apenas pesquisando para ver se poderia fazer backup do Discourse 3.5 + PG13 e depois restaurar no Discourse 3.5 + PG15 em um host diferente.
Eu não gosto de longos períodos de inatividade e, no passado, temporariamente defini a comunidade como somente leitura e fiz um backup/restauração entre instâncias de servidor, e foi efetivamente zero tempo de inatividade (além do período somente leitura, é claro)… então pensei em pesquisar/testar para ver se funciona entre versões do PG.
Caso contrário, eu simplesmente engolirei o sapo e farei o upgrade do PG15 primeiro antes da migração do servidor. ![]()
Funciona. Provavelmente já está na hora de atualizar seu sistema operacional. Basta iniciar um novo servidor e restaurar seu backup.
Eu tenho exatamente o mesmo problema. Obrigado pela ajuda. Meu webmaster Benjamin vai ler você.
Muriel
isso foi o que aconteceu comigo. iniciar um novo servidor e restaurar a partir do backup foi a única opção.
Ele é direto ao ponto. E não perca seu tempo debugando. este conselho faz você funcionar em pouco tempo.
Acabei fazendo o backup e a restauração e funcionou como esperado.
Para referência, caso mais alguém encontre um problema semelhante…
Encontrei um pequeno problema no início, pois o processo de restauração aparentemente chama o uploads:migrate_to_s3 internamente e ele estava travando.
[2025-02-26 00:24:16] Migrating the database...
[2025-02-26 00:24:24]
[2025-02-26 00:24:24] Reconnecting to the database...
[2025-02-26 00:24:24] Reloading site settings...
[2025-02-26 00:24:24] Disabling outgoing emails for non-staff users...
[2025-02-26 00:24:24] Disabling readonly mode...
[2025-02-26 00:24:24] Clearing category cache...
[2025-02-26 00:24:24] Reloading translations...
[2025-02-26 00:24:24] Remapping uploads...
[2025-02-26 00:24:24] Restoring uploads, this may take a while...
[2025-02-26 00:25:09] EXCEPTION: 12 of 12208 uploads are not migrated to S3. S3 migration failed for db 'default'.
[2025-02-26 00:25:09] /var/www/discourse/lib/file_store/to_s3_migration.rb:132:in `raise_or_log'
/var/www/discourse/lib/file_store/to_s3_migration.rb:73:in `migration_successful?'
/var/www/discourse/lib/file_store/to_s3_migration.rb:383:in `migrate_to_s3'
/var/www/discourse/lib/file_store/to_s3_migration.rb:59:in `migrate'
/var/www/discourse/lib/file_store/s3_store.rb:354:in `copy_from'
/var/www/discourse/lib/backup_restore/uploads_restorer.rb:69:in `restore_uploads'
/var/www/discourse/lib/backup_restore/uploads_restorer.rb:49:in `restore'
/var/www/discourse/lib/backup_restore/restorer.rb:167:in `restore_uploads'
/var/www/discourse/lib/backup_restore/restorer.rb:71:in `run'
/var/www/discourse/script/spawn_backup_restore.rb:20:in `restore'
/var/www/discourse/script/spawn_backup_restore.rb:33:in `block in <main>'
/var/www/discourse/script/spawn_backup_restore.rb:4:in `fork'
/var/www/discourse/script/spawn_backup_restore.rb:4:in `<main>'
[2025-02-26 00:25:09] Trying to rollback...
[2025-02-26 00:25:09] Rolling back...
[2025-02-26 00:25:10] Cleaning stuff up...
Acabei executando algumas consultas SQL no contêiner de dados para ver se conseguia descobrir o que estava acontecendo.
./launcher enter data
sudo -u postgres psql discourse
SELECT url FROM uploads WHERE url NOT LIKE '%s3%';
Isso apenas retornou alguns itens integrados padrão do Discourse, então tentei o inverso:
SELECT url from uploads where url LIKE '%s3%' limit 10;
Isso me deu um monte de correspondências no formato:
//{meu-nome-do-bucket}.s3.dualstack.us-east-2.amazonaws.com/original/2X/5/{id-da-imagem}.jpeg
Então, tentei uma consulta para obter tudo, exceto os itens que correspondiam a esse host s3.dualstack e descobri que havia 12 entradas antigas usando um formato ligeiramente diferente (correspondendo ao número que falhou no log de falha de restauração anterior).
//{meu-nome-do-bucket}.s3-us-east-2.amazonaws.com/{caminho-do-arquivo}.jpeg
Quando verifiquei a existência desses arquivos no bucket real, eles não existiam, então acabei excluindo-os com algo como:
DELETE FROM uploads where url LIKE '%{meu-nome-do-bucket}.s3-us-east-2.amazonaws.com%';
Depois disso, o backup e a restauração funcionaram como esperado!
PS. Não se esqueça de reativar os e-mails depois de restaurar o backup!
/admin/site_settings/category/all_results?filter=disable_email
2 posts were split to a new topic: Problema ao atualizar site de 10 anos
