Continuo recebendo erros ao atualizar

Não importa quantas vezes eu tente atualizar, sempre recebo Desculpe, ocorreu um erro ao atualizar o Discourse. Por favor, verifique os logs abaixo. ao atualizar pelo navegador. Sempre tenho que recorrer ao Terminal e isso não é bom, porque então terei que manter meu fórum inativo por cerca de 30 minutos.

Se alguém puder me ajudar aqui, ficaria grato.

Erros:

Summary
********************************************************
*** Por favor, seja paciente, os próximos passos podem demorar um pouco ***
********************************************************
Cycling Unicorn, para liberar memória
Reiniciando unicorn pid: 603
Esperando o Unicorn recarregar.
Esperando o Unicorn recarregar..
Esperando o Unicorn recarregar...
Esperando o Unicorn recarregar....
Esperando o Unicorn recarregar.....
Esperando o Unicorn recarregar......
Esperando o Unicorn recarregar.......
Esperando o Unicorn recarregar........
Esperando o Unicorn recarregar.........
Esperando o Unicorn recarregar..........
Esperando o Unicorn recarregar...........
Esperando o Unicorn recarregar............
Esperando o Unicorn recarregar.............
Esperando o Unicorn recarregar..............
Esperando o Unicorn recarregar...............
Esperando o Unicorn recarregar................
Esperando o Unicorn recarregar.................
Esperando o Unicorn recarregar..................
Esperando o Unicorn recarregar...................
Esperando o Unicorn recarregar....................
Esperando o Unicorn recarregar.....................
Esperando o Unicorn recarregar......................
Esperando o Unicorn recarregar.......................
Esperando o Unicorn recarregar........................
Esperando o Unicorn recarregar.........................
Esperando o Unicorn recarregar..........................
Esperando o Unicorn recarregar...........................
Esperando o Unicorn recarregar............................
Esperando o Unicorn recarregar.............................
Esperando o Unicorn recarregar..............................
Esperando o Unicorn recarregar...............................
$ cd /var/www/discourse 
$ git reset --hard HEAD@{upstream}
HEAD está agora em fe1b1edba FIX: remove + do tooltip de alternância do RTE (#33542)
$ bundle install --retry 3 --jobs 4
Bundle completo! 143 dependências do Gemfile, 190 gems agora instalados.
Gems nos grupos 'test' e 'development' não foram instalados.
Gems empacotados são instalados em `./vendor/bundle`
3 gems instalados que você depende diretamente estão procurando financiamento.
  Execute `bundle fund` para detalhes
$ if [ -f yarn.lock ]; then yarn install; else CI=1 pnpm install; fi
Escopo: todos os 16 projetos de espaço de trabalho
O arquivo de bloqueio está atualizado, a etapa de resolução é ignorada
Já atualizado

Concluído em 9.1s usando pnpm v9.15.6
$ LOAD_PLUGINS=0 bundle exec rake plugin:pull_compatible_all
discourse-adplugin já está na versão compatível mais recente
discourse-categories-suppressed já está na versão compatível mais recente
discourse-doc-categories já está na versão compatível mais recente
Lista de versão inválida em /var/www/discourse/plugins/discourse-landing-pages
discourse-landing-pages já está na versão compatível mais recente
discourse-solved já está na versão compatível mais recente
docker_manager já está na versão compatível mais recente
$ SKIP_POST_DEPLOYMENT_MIGRATIONS=1 bundle exec rake multisite:migrate
O migrador multisite está em execução usando 1 threads

Migrando padrão
Populando padrão
*** Empacotando assets. Isso levará um tempo *** 
$ bundle exec rake themes:update assets:precompile
Atualizando temas com concorrência: 10
[db:default] 'New Topic Header Button' - verificando...
[db:default] 'New Topic Header Button' - atualizado
[db:default] 'Category Banners' - verificando...
[db:default] 'Category Banners' - atualizado
[db:default] 'Clickable Topic' - verificando...
[db:default] 'Clickable Topic' - atualizado
[db:default] 'Tag Banners' - verificando...
[db:default] 'Tag Banners' - atualizado
[db:default] 'Breadcrumb Links' - verificando...
[db:default] 'Breadcrumb Links' - atualizado
[db:default] 'Welcome Link Banner' - verificando...
[db:default] 'Welcome Link Banner' - atualizado
[db:default] 'Tag Icons' - verificando...
[db:default] 'Tag Icons' - atualizado
[db:default] 'Social Share' - verificando...
[db:default] 'Social Share' - atualizado
[db:default] 'Navigation Menu Display Control' - verificando...
[db:default] 'Navigation Menu Display Control' - atualizado
[db:default] 'DiscoTOC' - verificando...
O limite de heap_size do Node.js é inferior a 2048MB. Definindo --max-old-space-size=2048 e CHEAP_SOURCE_MAPS=1
O build existente não é reutilizável.
- Existente: {"ember_env"="production", "core_tree_hash"="c71c1ad482ff7f24c3ad3a76d5a521861f29e1fb"}
- Atual: {"ember_env"="production", "core_tree_hash"="d026d5621e9421eaf67123aab7361a44f0fa9c31"}
Executando build principal completo...
Construindo
Ambiente: production
A configuração 'staticAddonTrees' terá o valor padrão true na próxima versão do Embroider e não poderá ser desativada. Para se preparar para isso, você deve definir 'staticAddonTrees: true' em sua configuração do Embroider.
A configuração 'staticAddonTestSupportTrees' terá o valor padrão true na próxima versão do Embroider e não poderá ser desativada. Para se preparar para isso, você deve definir 'staticAddonTestSupportTrees: true' em sua configuração do Embroider.
construindo...
...[ConfigLoader]
...[Babel: @embroider/macros 
...[Babel: pretty-text 
...[Babel: @ember/legacy-built-in-components 
...[Babel: ember-source 
[BABEL] Observação: O gerador de código desotimizou a estilização de /var/www/discourse/app/assets/javascripts/discourse/ember/ember-template-compiler.js, pois excede o máximo de 500KB.
[BABEL] Observação: O gerador de código desotimizou a estilização de /var/www/discourse/app/assets/javascripts/discourse/ember/ember.js, pois excede o máximo de 500KB.
...[Babel: @glimmer/component 
...[Babel: @ember/render-modifiers 
...[Babel: dialog-holder 
...[Babel: ember-this-fallback 
...[Babel: ember-buffered-proxy 
...[Babel: ember-cache-primitive-polyfill 
...[Babel: float-kit 
...[Babel: select-kit 
...[@embroider/compat/app]
...[@embroider/webpack]
...[@embroider/webpack]
...[@embroider/webpack]
...[@embroider/webpack]
...[@embroider/webpack]
...[@embroider/webpack]
...[@embroider/webpack]
...[@embroider/webpack]
...[@embroider/webpack]
...[@embroider/webpack]
...[@embroider/webpack]
...[@embroider/webpack]
...[@embroider/webpack]
...[@embroider/webpack]
...[@embroider/webpack]
undefined
 ERR_PNPM_RECURSIVE_EXEC_FIRST_FAIL O comando foi encerrado com SIGKILL (Terminação forçada): ember build -prod
/var/www/discourse/script/assemble_ember_build.rb:103:in `system': Comando falhou com saída 1: pnpm (RuntimeError)
	from /var/www/discourse/script/assemble_ember_build.rb:103:in `
Docker Manager: FALHA AO ATUALIZAR
#
/var/www/discourse/plugins/docker_manager/lib/docker_manager/upgrader.rb:211:in `run'
/var/www/discourse/plugins/docker_manager/lib/docker_manager/upgrader.rb:112:in `upgrade'
/var/www/discourse/plugins/docker_manager/scripts/docker_manager_upgrade.rb:19:in `block in 
/var/www/discourse/plugins/docker_manager/scripts/docker_manager_upgrade.rb:6:in `fork'
/var/www/discourse/plugins/docker_manager/scripts/docker_manager_upgrade.rb:6:in `
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-7.2.2.1/lib/rails/commands/runner/runner_command.rb:44:in `load'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-7.2.2.1/lib/rails/commands/runner/runner_command.rb:44:in `block in perform'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-7.2.2.1/lib/active_support/execution_wrapper.rb:91:in `wrap'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-7.2.2.1/lib/rails/commands/runner/runner_command.rb:70:in `conditional_executor'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-7.2.2.1/lib/rails/commands/runner/runner_command.rb:43:in `perform'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/thor-1.3.2/lib/thor/command.rb:28:in `run'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/thor-1.3.2/lib/thor/invocation.rb:127:in `invoke_command'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-7.2.2.1/lib/rails/command/base.rb:178:in `invoke_command'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/thor-1.3.2/lib/thor.rb:538:in `dispatch'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-7.2.2.1/lib/rails/command/base.rb:73:in `perform'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-7.2.2.1/lib/rails/command.rb:71:in `block in invoke'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-7.2.2.1/lib/rails/command.rb:149:in `with_argv'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-7.2.2.1/lib/rails/command.rb:69:in `invoke'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-7.2.2.1/lib/rails/commands.rb:18:in `
/usr/local/lib/ruby/3.3.0/bundled_gems.rb:69:in `require'
/usr/local/lib/ruby/3.3.0/bundled_gems.rb:69:in `block (2 levels) in replace_require'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/bootsnap-1.18.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
bin/rails:18:in `
Iniciando 1 worker Unicorn que foram parados inicialmente

Você precisa fazer um arquivo de paginação maior.
Eu tive o mesmo problema. Isso resolveu

1 curtida

Você pode explicar como? Não estou familiarizado com isso. Lembro-me de alguém falando sobre isso, mas acho que não fiz nenhuma alteração (bem, aparentemente eu provavelmente não fiz e é isso que está causando isso).
Obrigado

Eu recomendo atualizar pela linha de comando

cd /var/discourse
./launcher rebuild app

Você ainda pode ter problemas de memória. Se isso falhar, inclua o erro e a saída de

free -h
2 curtidas

Use Google ou youtube:
“Arquivo swap do Linux”

1 curtida

Aqui está o guia da Digital Ocean:

Normalmente, você precisa adicionar tanta swap quanto RAM.

1 curtida

https://meta.discourse.org/search?context=topic&context_id=373634&q=Node.js%20heap_size_limit%20is%20less%20than%202048MB&skip_context=true

1 curtida

Atualizações
Após algumas conversas com o Claude, eis o que está acontecendo:

Inicialmente, eu tinha isto:

sudo swapon --show
NAME      TYPE SIZE USED PRIO
/swapfile file   2G   1G   -2

Isso ainda estava causando o erro.

Então, consegui aumentá-lo para 4GB, acredito:

sudo swapon --show
NAME      TYPE SIZE   USED PRIO
/swapfile file   4G 714.4M   -2

Agora, aqui está o estranho: enquanto eu estava fazendo isso, voltei para a página de atualização e, para minha surpresa, tudo foi atualizado…
Como isso é possível, se estava me mostrando aquele erro? :confused:

De qualquer forma, agora entendo pelo menos que um swapfile está relacionado ao espaço em disco, não à RAM. Estou usando o droplet da DigitalOcean com 1GB de RAM e 25GB de disco.

Então, acho que ter o swapfile de 4GB está ok por enquanto?
Mas ainda assim, por que ele atualizou, mesmo depois de me mostrar aquele erro?

Um swapfile é uma forma de usar parte do seu espaço em disco como RAM muito, muito lenta, portanto, está relacionado tanto ao espaço em disco quanto à RAM.

25 GB é apenas espaço suficiente. Você precisará executar um ./launcher cleanup antes de quase todos os comandos de atualização pela linha de comando.

1 curtida

O que eu quis dizer foi que, quando vi discussões sobre isso, quando as pessoas diziam “crie um swapfile de 2GB”, eu pensei que estava relacionado à quantidade de RAM, então no meu caso, eu não seria capaz de fazer isso, porque eu só tenho 1GB de RAM. Agora, eu entendo que o swapfile é, na verdade, espaço em disco, quase como criar uma pequena partição. Então, sim, eles estão relacionados, porque eles “comunicam” entre si quando necessário, mas eu estava sendo mais literal com meu comentário.

É tudo o que posso pagar no momento e, como ainda não tenho uma comunidade real, é o suficiente. Farei um upgrade à medida que a comunidade crescer.

Então, você está dizendo que antes de cada atualização, mesmo quando uso o painel de administração para atualizar, devo executar ./launcher cleanup via Terminal?

Não. Usar o painel de administração não faz o docker criar mais imagens que não está usando, mas você pode não ter memória suficiente (RAM mais swap) para fazer a atualização pelo painel de administração.

Isso é tudo um pouco confuso para mim…
Algumas pessoas disseram que estavam tendo o mesmo problema que eu, e que criar o swapfile de 2GB as ajudou. Agora eu criei o swapfile de 4GB, mas isso foi depois que atualizei, então terei que esperar por outra atualização para testá-lo.

Então, por exemplo, se eu atualizar para 2GB de RAM, isso seria suficiente, mesmo que o espaço em disco ainda seja de 25GB?

Sou muito novo em tudo isso, então peço desculpas se isto for muito óbvio para a maioria das pessoas. Estou apenas tentando entender as coisas enquanto trabalho nisso.

Máquina de 1GB com 4GB de swap deve ser suficiente.

Eu pessoalmente recomendaria pelo menos 2GB com 2GB de swap para começar, mas você atende os requisitos mínimos publicados de uma instalação padrão.

Eu seguiria em frente e usaria e só faria o upgrade se você achar que as coisas estão muito lentas.

Você não deve ter problemas com memória agora.

2 curtidas

Exceto que, como você disse, o HDD ficará cheio bem rápido, e cleanup é obrigatório, não importa quanta RAM haja.

Obrigado. Por enquanto, quero apenas começar a adicionar conteúdo e alguns usuários até que faça sentido fazer o upgrade.

Fora do tópico, mas ainda relacionado ao espaço em disco: quando revisei tudo, notei que estava usando cerca de 18 GB e, quando perguntei ao ChatGPT, ele disse que era normal o Discourse ocupar tanto espaço?

Se for o caso, meu servidor de 25 GB estaria usando 18 GB para a instalação + 4 GB para o arquivo de paginação (swapfile), deixando-me com pouco espaço. Você pode confirmar isso?

Não vou debater com seu robô.

Você está correto que os 4GB sairão do seu espaço de disco disponível (claro).

2 curtidas

Acabei de verificar todas as pastas e notei que 12 GB estão sendo usados por esta pasta:

/var/lib/docker/overlay2/

O que é isso e é possível reduzi-lo, talvez removendo arquivos que não são necessários?

Talvez veja o tópico anterior
Falha na atualização do Discourse devido a espaço em disco insuficiente em um droplet de 25G

Talvez também este tópico

1 curtida

Talvez alguém pudesse dizer algo como:

Sem nenhum contexto extra, aquele comentário inicial não foi muito útil para mim. Eu não esperava que o Discourse usasse 18 GB de espaço em disco quando outras plataformas como o phpBB são muito mais leves (não sendo um especialista, não tenho ideia de por que uma plataforma é mais leve que a outra, mas elas são diferentes, aparentemente). Então, quando você disse que 25 GB é apenas o suficiente sem adicionar mais contexto a isso, enquanto não há nada na página oficial de instalação que diga que o Discourse talvez use N gigabytes de espaço, assumi que o Digital Ocean padrão de 1 GB de RAM com 25 GB era mais do que suficiente e talvez comunidades maiores lutassem com apenas 25 GB. Como a minha está apenas no começo, eu não vi o espaço em disco como um problema.

Espero que faça sentido.

1 curtida