Problema ao atualizar o Discourse Forum


Olá a todos!
Eu estava tentando atualizar o fórum do Discourse usando o link postado no painel de administração e recebi este erro. Todo o fórum desapareceu. O que devo fazer agora para redefinir a atualização? Muito obrigado se alguém puder me ajudar. :sob:

Na verdade, isso significa que seu fórum está sendo atualizado. - a menos que você interrompa a atualização antes que ela termine.

Tente visitar seu fórum https://yoursite.com/latest.json. Se ele retornar algo, espere 10 minutos e veja se o problema se resolve sozinho.

Obrigado pela sua resposta, tentei o método que você deu e ele retorna 502 Bad Gateway nginx.

Parece que você pode ter que executar ./launcher rebuild app

Tentei o ./launcher rebuild app e recebi as seguintes mensagens de erro:

FAILED

--------------------

Pups::ExecError: cd /var/www/discourse & su discourse -c 'bundle install --deployment --retry 3 --jobs 4 --verbose --without test development' falhou com retorno #<Process::Status: pid 340 exit 5>

Localização da falha: /pups/lib/pups/exec_command.rb:112:in `spawn'

exec falhou com os parâmetros {"cd"=>"$home", "hook"=>"bundle_exec", "cmd"=>["su discourse -c 'bundle install --deployment --retry 3 --jobs 4 --verbose --without test development'"]}

6e9e60bd6b6113cdcb001127fd2a24fe86f2a1658bf24500e5e2b720fd793510

** FALHA AO INICIALIZAR ** por favor, role para cima e procure por mensagens de erro anteriores, pode haver mais de uma.

./discourse-doctor pode ajudar a diagnosticar o problema.

e rolei para cima e encontrei alguns logs de erro possíveis:

1)200:M 25 Jun 2023 16:00:16.252 # Falha ao escutar na porta 6379 (TCP), abortando.

2)[DEPRECATED] A flag `--deployment` está obsoleta porque depende de ser lembrada entre invocações do bundler, o que o bundler não fará mais em versões futuras. Em vez disso, use `bundle config set --local deployment 'true'`, e pare de usar esta flag
[DEPRECATED] A flag `--without` está obsoleta porque depende de ser lembrada entre invocações do bundler, o que o bundler não fará mais em versões futuras. Em vez disso, use `bundle config set --local without 'test development'`, e pare de usar esta flag

3)Bundler::PathError: O caminho `/var/www/discourse/vendor/bundle/ruby/2.7.0/bundler/gems/sprockets-f4d3dae71ef2` não existe.

4)Bundler::InstallError: sass-embedded-1.63.6-x86_64-linux requer a versão do rubygems >= 3.3.22, que é incompatível com a versão atual, 3.2.18

Alguém mais encontrou um problema semelhante recentemente, se isso ajudar?

Muito obrigado pela sua resposta, mas acho que não é o mesmo problema, meu servidor é na Alemanha. Estou usando a imagem docker do discourse para o meu servidor. O que devo fazer se ./launcher rebuild app não funcionar?

Parece semelhante a
Rebuild falhou devido à incompatibilidade de gemas Ruby

Obrigado pela ajuda! Sim, parece semelhante e eu tentei:

my server:/var/discourse**$ git pull

fatal: Not a git repository: ../.git/modules/discourse_docker

Devo fazer algo antes de executar o git pull? Eu estava fazendo isso no /var/discourse do meu servidor.

Parece possível que você tenha uma configuração incomum - esta é uma instalação padrão?

Li os últimos documentos do programador para mim e diz que, como muitas coisas na web rodam atrás do nginx e o Discourse também precisa ser hospedado atrás do nginx. A instalação padrão não funciona para a minha situação.

E o seguinte é como ele disse no documento e como ele fez:

O Discourse roda em um contêiner Docker. No entanto, ele requer um tipo especial de configuração, não via docker-compose.yml ou um arquivo .conf.

O repositório do GitHub discourse-project/ que requer configurar e construir a imagem Docker pode ser encontrado aqui. Ignore o programa “discourse-setup” legal e interessante que eles fornecem, isso não funcionará aqui. Precisamos configurar o aplicativo nós mesmos.

  1. clone discourse_docker para /var/discourse: git clone https://github.com/discourse/discourse_docker.git /var/discourse
  2. vá para a pasta e use uma configuração de exemplo fornecida: cd /var/discourse &amp;&amp; cp samples/standalone.yml containers/app.yml
  3. em seguida, edite o arquivo containers/app.yml (por exemplo, com sudo nano)
  • Foram feitas alterações na seção de hospedagem, nas configurações de smtp para e-mail e - importante - na seção de exposição para que apenas uma porta não utilizada seja exposta ao exterior
  • Para executar o Discourse em um caminho como “/forum”, mais algumas alterações foram necessárias, conforme descrito aqui
  • Alguns problemas também ocorrem com a autenticação de e-mail:
    • O e-mail que envia e-mails está aqui “e-mail do servidor”. No entanto, o Discourse espera que o e-mail tenha o mesmo domínio de seu host, ou seja, “e-mail do servidor”
      • Solução descrita aqui
    • Use também “DISCOURSE_SMTP_AUTHENTICATION: login” como outra opção de ambiente. Por que também sempre . . .
  1. Em seguida, construa o aplicativo a partir do diretório /var/discourse com sudo ./launcher bootstrap app. Isso leva bastante tempo
  2. Em seguida, você poderá iniciar o contêiner do Discourse com sudo ./launcher start app.

Essas são boas anotações.

O git pull;./launcher rebuild app deve funcionar.

De qual versão você está atualizando?

O sistema operacional está desatualizado? (cat /etc/issue)

O disco está cheio? (df - h)

Obrigado pela sua resposta! A versão da qual estou atualizando é a 2.8.0.beta6 e a última atualização foi em 28.09.2021.

Após executar cat /etc/issue, obtive:
Debian GNU/Linux 9 \\n \\l

E as seguintes informações de acordo com ./discourse-doctor

==================== INFORMAÇÕES DE MEMÓRIA ====================
RAM (MB): 4050

              total        used        free      shared  buff/cache   available
Mem:           3955         427        1152          63        2375        3182
Swap:             0           0           0

==================== VERIFICAÇÃO DE ESPAÇO EM DISCO ====================
---------- Espaço em Disco do SO ----------
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1        63G   27G   34G  45% /

==================== INFORMAÇÕES DE DISCO ====================
Disco /dev/sda: 64 GiB, 68719476736 bytes, 134217728 setores
Unidades: setores de 1 * 512 = 512 bytes
Tamanho do setor (lógico/físico): 512 bytes / 512 bytes
Tamanho de E/S (mínimo/ótimo): 512 bytes / 512 bytes
Tipo de label do disco: dos
Identificador do disco: 0xc0b6220c

Device     Boot Start       End   Sectors Size Id Type
/dev/sda1        2048 134217727 134215680  64G 83 Linux

Você pode adicionar swap.

Veja também a atualização do PostgreSQL 13.

Você reconstruiu mais de uma vez?

Veja também Debian | endoflife.date

Você realmente precisa mover tudo para uma nova VM com um sistema operacional suportado. Portanto, você também precisará atualizar o restante do que você tem em execução.

Olá Jammy, após várias tentativas de instalação falhadas, descobri que a causa foi o limite de memória do servidor e a rede. Sugiro que você use um servidor com 4GB de memória e acesso normal ao GitHub e Ruby.

Este erro me incomoda - você ainda o vê? O contêiner docker agora deve estar executando 3.2.0

Mas se o seu /var/discourse não for um diretório git, algo foi feito de forma diferente das instruções. Isso impede uma atualização e causa a incompatibilidade da versão ruby. Para mim:

/var/discourse# git status
On branch main
Your branch is up to date with 'origin/main'.

Também vemos um diretório .git:

# ls -a /var/discourse/
.     .github     README.md  cids              discourse-setup  launcher     scripts    tests
..    .gitignore  bin        containers        image            rebuild.log  shared
.git  LICENSE     c          discourse-doctor  index.html       samples      templates

Editar: mas é verdade, se você estiver em um sistema operacional muito antigo, terá algum trabalho a fazer, para instalar o discourse em um novo sistema operacional e recuperar seu backup, e também para fazer todas as coisas extras que podem ser necessárias para sua situação específica.

Se o seu servidor estiver fazendo mais coisas do que apenas executar o discourse, isso é uma complicação extra. Você pode precisar de conhecimento local.

Tenho uma falha comparável com ruby gems, etc.
Foi uma instalação limpa em um novo servidor.

Obrigado pessoal pela ajuda, vou tentar suas sugestões uma por uma para corrigir o problema. Se houver algum feedback (bom ou ruim), postarei de volta no fórum. Obrigado novamente!

Instalei com sucesso a nova versão do Discourse. Segui as instruções do documento acima e funcionou para mim. Mas agora tenho problemas para restaurar a partir do backup.
Tentei Restaurar um backup da linha de comando, mas obtive o seguinte:

root@my_server:/var/www/discourse# discourse restore my_server-2023-06-20-033008-v20210922064213.tar.gz
Starting restore: my_server-2023-06-20-033008-v20210922064213.tar.gz
[STARTED]
'system' has started the restore!
Marking restore as running...
Making sure /var/www/discourse/tmp/restores/default/2023-06-29-113408 exists...
Copying archive to tmp directory...
Unzipping archive, this may take a while...
EXCEPTION: /var/www/discourse/lib/discourse.rb:137:in `exec': Failed to decompress archive.

gzip: stdin: not in gzip format
tar: Child returned status 1
tar: Error is not recoverable: exiting now
/var/www/discourse/lib/discourse.rb:171:in `execute_command'
/var/www/discourse/lib/discourse.rb:137:in `exec'
/var/www/discourse/lib/discourse.rb:33:in `execute_command'
/var/www/discourse/lib/backup_restore/backup_file_handler.rb:78:in `decompress_archive'
/var/www/discourse/lib/backup_restore/backup_file_handler.rb:23:in `decompress'
/var/www/discourse/lib/backup_restore/restorer.rb:42:in `run'
script/discourse:149:in `restore'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/thor-1.2.2/lib/thor/command.rb:27:in `run'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/thor-1.2.2/lib/thor/invocation.rb:127:in `invoke_command'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/thor-1.2.2/lib/thor.rb:392:in `dispatch'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/thor-1.2.2/lib/thor/base.rb:485:in `start'
script/discourse:290:in `<top (required)>'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/cli/exec.rb:58:in `load'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/cli/exec.rb:58:in `kernel_load'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/cli/exec.rb:23:in `run'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/cli.rb:492:in `exec'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/vendor/thor/lib/thor.rb:392:in `dispatch'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/cli.rb:34:in `dispatch'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/vendor/thor/lib/thor/base.rb:485:in `start'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/cli.rb:28:in `start'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/exe/bundle:45:in `block in <top (required)>'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/friendly_errors.rb:117:in `with_friendly_errors'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/exe/bundle:33:in `<top (required)>'
/usr/local/bin/bundle:25:in `load'
/usr/local/bin/bundle:25:in `<main>'
Trying to rollback...
There was no need to rollback
Cleaning stuff up...
Removing tmp '/var/www/discourse/tmp/restores/default/2023-06-29-113408' directory...
Marking restore as finished...
Notifying 'system' of the end of the restore...
Finished!
[FAILED]
Restore done.

O que devo fazer agora?

Há algo de errado com seu arquivo de backup. Ele pode estar apenas truncado.